Prueba con esto, a mi me funciono hace unos días aun.
Código Delphi
[-]
procedure Tfpdfemail.btn_emailClick(Sender: TObject);
Var
IdSSLIOHandlerSocket: TIdSSLIOHandlerSocketOpenSSL;
IdSMTP: TIdSMTP;
IdMessage: TIdMessage;
IdText: TIdText;
sAnexo, ruta: string;
begin
IdSSLIOHandlerSocket := TIdSSLIOHandlerSocketOpenSSL.Create(Self);
IdSMTP := TIdSMTP.Create(Self);
IdMessage := TIdMessage.Create(Self);
try
IdSSLIOHandlerSocket.SSLOptions.Method := sslvSSLv23;
IdSSLIOHandlerSocket.SSLOptions.Mode := sslmClient;
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';
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';
IdMessage.Subject := 'Correo automático del Sistema';
IdMessage.Encoding := meMIME;
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';
sAnexo := 'C:\pdf\Algo.pdf';
if FileExists(sAnexo) then
begin
TIdAttachmentFile.Create(IdMessage.MessageParts, sAnexo);
end;
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;
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
IdSMTP.Disconnect;
UnLoadOpenSSLLibrary;
FreeAndNil(IdMessage);
FreeAndNil(IdSSLIOHandlerSocket);
FreeAndNil(IdSMTP);
end;
end;