Ver Mensaje Individual
  #1  
Antiguo 03-08-2014
Avatar de ozsWizzard
ozsWizzard ozsWizzard is offline
Miembro
 
Registrado: may 2004
Ubicación: Murcia
Posts: 190
Reputación: 21
ozsWizzard Va por buen camino
Ejemplo Gmail (Está escrito casi de cabeza mirando un programa mío, creo que está bien y debería funcionar:

Código Delphi [-]
procedure Enviar;
var
   SMTP: TIdSMTP;
   Mensaje: TIdMessage;
   i: Integer;
   lMens: String;
   gmailssl: TIdSSLIOHandlerSocketOpenSSL;
   Para: TIdEmailAddressList;
begin
   gmailIssl := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
   
   SMTP := nil;
   SMTP := TIdSMTP.Create(nil);
   try   
      gmailssl.Destination = 'smtp.gmail.com:587';
      gmailssl.Host = 'smtp.gmail.com';
      gmailssl.Port = 587;

      SMTP.Username  := 'usuario@gmail.com';
      SMTP.Password  := 'Clave';
      SMTP.Host      := 'smtp.gmail.com';
      SMTP.Port      := '587'; //'465 si es con SSL. Aunque esto no lo tengo claro del todo.
      SMTP.IOHandler := gmailSSL;
      SMTP.UseTLS    := utUseExplicitTLS;
      
      Mensaje := TIdMessage.Create(nil);
      Para := TIdEmailAddressList.Create(nil);
      Cuerpo := TStringList.Create;
      try
         Mensaje.Clear;
         
         Mensaje.From.Name    := Desde;
         Mensaje.From.Address := Login;
         
         Para.Add.Address = 'correo@correo.com'. //Es una lista
         Mensaje.Recipients := Para; 
         Mensaje.Subject    := 'Asunto';
         Correo.Cuerpo.Add('Cuerpo'); //Es una lista
         Mensaje.Body.Text  := Cuerpo.Text;
         
        //Aquí es donde va lo de los adjuntos 
        TIdAttachmentFile.Create(Mensaje.MessageParts, 'direccionFichero'); //Es una lista         
         
         Mensaje.Priority := mpHighest;
            try
               lMens := 'Error al conectar con el servidor:';
               SMTP.Connect;
               // Si ha conectado enviamos el mensaje y desconectamos
               if SMTP.Connected then
               begin
                  lMens := 'Error al enviar el mensaje:';
                  SMTP.Send(Mensaje);

                  lMens := 'Error al desconectar del servidor:';
                  SMTP.Disconnect;
               end;
               //Sacar mensaje de correcto
            except
               on E:Exception do
               begin
                  lMens := lMens + ' ' + E.Message;
                  //Sacar mensaje de error
               end;
            end;

         finally
            //Este error no debería de darse, se crear un count más de los que hay
            //cuando falla el envío
            try
               for i := 0 to Mensaje.MessageParts.Count - 1 do
                  TIdAttachmentFile(Mensaje.MessageParts[i]).Free;
            except
            end;
            Mensaje.Free;
            Para.Free;
            Cuerpo.Free;
      end;
   finally
      if Assigned(SMTP)       then SMTP.Free;
      if Assigned(gmailIssl)  then SMTP.Free;
   end;

Donde pone "//Es una lista" es que puedes poner esa línea dentro de un bucle y rellenar varios datos.
__________________
La Madurez se llama...
~~~Gaia~~~
Responder Con Cita