Ver Mensaje Individual
  #4  
Antiguo 30-05-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Reputación: 23
AzidRain Va camino a la fama
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;  // Componente de envio de correo
      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]'; //aqui le pones lo que corresponda

   

    Recipients.EMailAddresses :=  dirs; //aqui van las direcciones.;
    Subject := asunto;
    Priority := TIdMessagePriority(mpHighest);//prioridad del mensaje
    CCList.EMailAddresses :='[email protected]'; //con copia para quien quieras
    BccList.EMailAddresses := '';
    TIdAttachment.Create(Mensaje.MessageParts,adjunto);
  end; //configuracion server smtp
  with idsmtp1 do
  begin
   try
      Connect;
      try
        // Envio el mensaje.
        Send(Mensaje);
      finally
        Disconnect;
      end;
  //    MessageDlg('Enviado Correctamente', mtInformation, [mbOK], 0);
    except
       // Capturo algunas excepciones que pueden ocurrir
      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
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita