Ver Mensaje Individual
  #7  
Antiguo 03-11-2016
Tecnofacil Tecnofacil is offline
Miembro
 
Registrado: jun 2015
Posts: 50
Reputación: 9
Tecnofacil Va por buen camino
Prueba con esto, a mi me funciono hace unos días aun.
Código Delphi [-]
procedure Tfpdfemail.btn_emailClick(Sender: TObject);
  // variables y objetos necesarios para el envío
  Var
    IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
    IdSMTP: TIdSMTP;
    IdMessage: TIdMessage;
    IdText: TIdText;
    sAnexo, ruta: string;
begin
    // -- ENVIO POR CORREO --
   // instanciación de objetos
  IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
   IdSMTP := TIdSMTP.Create(Self);
  IdMessage := TIdMessage.Create(Self);
   try
    // Configuración de protocolo SSL (TIdSSLIOHandlerSocketOpenSSL)
    IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
    IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
     // Configuración de servidor SMTP (TIdSMTP)

    // -- PARA GOOGLE --
       IdSMTP.IOHandler := IdSSLIOHandlerSocket;
       IdSMTP.UseTLS := utUseImplicitTLS;
       IdSMTP.AuthType := satDefault;
       IdSMTP.Port := 465;
       IdSMTP.Host := 'smtp.gmail.com';
       IdSMTP.Username := 'usuario@gmail.com';
       IdSMTP.Password := 'password';

     // Configuración del mensage (TIdMessage)
    IdMessage.From.Address := 'micorreo@dominio';
    IdMessage.From.Name := 'Mi Nombre';
    IdMessage.ReplyTo.EMailAddresses := IdMessage.From.Address;
    IdMessage.Recipients.Add.Text := 'destinatario1@dominio';
    IdMessage.Recipients.Add.Text := 'destinatario2@dominio';
    IdMessage.Recipients.Add.Text := 'destinatario3@dominio';
    //Se pueden agregar todas las cuentas de destino que se necesite
    IdMessage.Subject := 'Correo automático del Sistema';
    IdMessage.Encoding := meMIME;
    // Configuración del cuerpo de email (TIdText)
    IdText := TIdText.Create(IdMessage.MessageParts);
    IdText.Body.Add('No responda a este correo, se envía automáticamente desde el sistema.');
    IdText.Body.Add('Se adjunta pdf.');
    IdText.ContentType := 'text/plain; charset=iso-8859-1';
     // Opcional - Adjunto (TIdAttachmentFile)
    sAnexo := 'C:\pdf\Algo.pdf';
    if FileExists(sAnexo) then
    begin
      TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
    end;
     // Conexión y autenticación
    try
      IdSMTP.Connect;
      IdSMTP.Authenticate;
    except
      on E:Exception do
      begin
        MessageDlg('Error en la conexión o autenticación: ' +
          E.Message, mtWarning, [mbOK], 0);
        Exit;
      end;
    end;
     // Envio
    try
      IdSMTP.Send(IdMessage);
      MessageDlg('Correo enviado correctamente!', mtInformation, [mbOK], 0);
    except
      On E:Exception do
      begin
        MessageDlg('Error al enviar el correo: ' +
          E.Message, mtWarning, [mbOK], 0);
      end;
    end;
  finally
    // desconectar del servidor
    IdSMTP.Disconnect;
    // liberación de las DLL
    UnLoadOpenSSLLibrary;
    // liberación de objetos
    FreeAndNil(IdMessage);
    FreeAndNil(IdSSLIOHandlerSocket);
    FreeAndNil(IdSMTP);
  end;
end;
Responder Con Cita