Ver Mensaje Individual
  #1  
Antiguo 17-06-2018
usuario1000 usuario1000 is offline
Miembro
 
Registrado: nov 2016
Posts: 86
Reputación: 8
usuario1000 Va por buen camino
enviar email a gmail /hotmail /...

Buenas a todos.


Ya sé que hay hilos por el foro de enviar email, pero creanme, he leido y probado de todo y ya me doy por vencido y he llegado al punto de tener que solicitar ayuda.


La idea es que desde un email de una empresa pequeñita "xxxxxxxx@servidorempresa.es" enviar unos correos a unos clientes ya seán de hotmail, gmail, icloud, u otros.


Con el código que pongo a continuación logro que los envíe a icloud y otros que no sean ni gmail ni hotmail. Pero no soy capaz de mandar un email a gmail o hotmail.


Alguien caritativo me puede aclarar el codigo a ver en que falla. Gracias a todos. (Delphi 10 Seattle en Windows 10).

Código Delphi [-]
procedure TFPrincipal.ejecutarEmailCliente( sUsuario, sClave, sHost, sAdjunto, sAsunto, sDestino, sMensaje: string );
var
   SMTP: TIdSMTP;
   Mensaje: TIdMessage;
   tipoCorreo:string;
  // Adjunto: TIdAttachment;
begin
  // Creamos el componente de conexión con el servidor

  tipoCorreo:= averiguarTipoCorreo(sDestino);


  if tipoCorreo = 'hotmail' then  // no funciona
  begin
          SMTP := TIdSMTP.Create( nil );
          SMTP.Username := 'correo@corporativo.es';
          SMTP.Password := 'contraseña';
          SMTP.Host := 'smtp.live.com';
          SMTP.Port := 25;

  end;
  if tipoCorreo = 'gmail' then  // no funciona
  begin
          SMTP := TIdSMTP.Create( nil );
          SMTP.Username := 'correo@corporativo.es';
          SMTP.Password := 'contraseña';
          SMTP.Host := 'smtp.gmail.com';
          SMTP.Port := 587;

  end;
  if (tipoCorreo <> 'hotmail') and (tipoCorreo<>'gmail') then  // este sí que funciona
  begin
          SMTP := TIdSMTP.Create( nil );
          SMTP.Username := sUsuario;
          SMTP.Password := sClave;
          SMTP.Host := sHost;
          SMTP.Port := 587;
  end;


  // Creamos el contenido del mensaje
  Mensaje := TIdMessage.Create( nil );
  Mensaje.Clear;
  mensaje.ContentType := 'text/html';
  mensaje.CharSet := 'UTF-8';
  Mensaje.From.Name := sUsuario;   // sDestino
  Mensaje.From.Address := sDestino;
  Mensaje.Subject := sAsunto;
  Mensaje.Body.Text := sMensaje;
  Mensaje.Recipients.Add;
  Mensaje.Recipients.Items[0].Address := sDestino;

  // Si hay que meter un archivo adjunto lo creamos y lo asignamos al mensaje
 { if sAdjunto <> '' then
  begin
    if FileExists( sAdjunto ) then
    //  Adjunto := TIdAttachment.Create( Mensaje.MessageParts, sAdjunto );
  end
  else
    Adjunto := nil;      }

  // Conectamos con el servidor SMTP


  try
    SMTP.Connect;

  except
//  errores

  end;

  // Si ha conectado enviamos el mensaje y desconectamos
  if SMTP.Connected then
  begin
    try
      SMTP.Send( Mensaje );
   
    except
  // control errores
      
    end;

    try
      SMTP.Disconnect;
    except
      //raise Exception.Create( 'Error al desconectar del servidor.' );
    end;


  end;

end;

Última edición por usuario1000 fecha: 17-06-2018 a las 18:24:16.
Responder Con Cita