Aqui te dejo un código muy util para programas de este tipo:
Código Delphi
[-]
procedure
email2(host:string; nombre:string; password:string; port:integer; desde:string;
hasta:string; asunto:string; cuerpo:string; adjunto:string);
var
IDSMTP1: TIDSMTP; mensaje: TIdMessage;
dirs:String;
c:Integer;
begin
IDSMTP1:=TIDSMTP.Create(nil);
IdSMTP1.AuthenticationType :=atLogin;
IdSMTP1.UserId := nombre;
IdSMTP1.Password := password;
IdSMTP1.Host := host;
IdSMTP1.Port := port;
MENSAJE:=TIDMESSAGE.CREATE(nil);
with Mensaje do
begin
Body.Add('Por este medio le enviamos la información solicitada de sus embarques.');
Body.Add(' Esperamos le sea de la mayor utilidad y le reiteramos nuestro compromiso de servirle.');
Body.Add('Atentamente');
dirs:='';
From.Text := desde;
Replyto.EMailAddresses:='[email protected]';
Recipients.EMailAddresses := dirs; Subject := asunto;
Priority := TIdMessagePriority(mpHighest); CCList.EMailAddresses :='[email protected]'; BccList.EMailAddresses := '';
TIdAttachment.Create(Mensaje.MessageParts,adjunto);
end; with idsmtp1 do
begin
try
Connect;
try
Send(Mensaje);
finally
Disconnect;
end;
except
ON E: EIdProtocolReplyError do begin
MessageDlg('No se ha podido enviar el email.' + #13 +
'Incorrecto el email o el usuario o la password.', mtError, [mbOK], 0);
end;
on E: EFOpenError do begin
MessageDlg('No se ha podido enviar el email.' + #13 +
'Fichero Adjunto desconocido o erróneo.', mtError, [mbOK], 0);
end;
on E: EIdSocketError do begin
MessageDlg('No se ha podido enviar el email.'+ #13 +
'Host desconocido o incorrecto.', mtError, [mbOK], 0);
end
else begin
MessageDlg('Fallo en el envio de email', mtError, [mbOK], 0);
end;
end;
end;
IDSmtp1.Free;
Mensaje.Free;
ENd;
Para usarlos simplemente obtienes el query con los datos de los empleados (incluyendo sus mails) y la recorres mandandoles a cada uno su mail con ayuda de esta función.
Si es el mismo mail para todos, simplemente creas una lista con los mails de todos: '
[email protected];
[email protected];
[email protected]...' y la usas para enviar el correo, asi solo tienes que mandar la instruccion una sola vez y el servidor se encarga del resto.
Si los mails son diferentes hay que mandar uno por uno.
Ojala te sirva