Hasta ayer enviaba correos mediante gmail con el codigo de mas abajo, pero de golpe y porrazo ha dejado de funcionar con todas las cuentas de gmail a las que tengo acceso, investigando en la web sospecho que gmail ya ha dejado de soportar SSLv3
http://googleappsupdates.blogspot.co...d-rc4-for.html
¿alguien sabe algo mas del tema? ¿alguien sabe como enviar por gmail mediante otro codigo?
Código Delphi
[-]uses IdHTTP, WinInet, IdIOHandler, IdIOHandlerSocket, IdIOHandlerStack,
IdSSL, IdSSLOpenSSL, IdExplicitTLSClientServerBase, Datasnap.DBClient,
IdBaseComponent, IdComponent, IdTCPServer, IdSMTPServer, tzprimds, ucommon, utzcds, utzfds,
IdMessage, IdEMailAddress, IdTCPConnection, IdTCPClient, IdMessageClient, IdSMTP, idexception, myaccess, IdAttachmentFile,
IdRawBase, IdRawClient, IdIcmpClient, IdSSLOpenSSLHeaders;
procedure emailgmail(host: string; nombre: string; password: string; port: integer; desde: string; hasta: string; asunto: string; cuerpo: string; adjunto: string);
var
IDSMTP1: TIDSMTP; IdSSLIOHandlerSocketOpenSSL: tIdSSLIOHandlerSocketOpenSSL;
Mensaje: TIdMessage;
begin
screen.cursor := crhourglass;
IdSSLIOHandlerSocketOpenSSL := tIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL.Destination := host + ':' + IntToStr(port); IdSSLIOHandlerSocketOpenSSL.host := host + ':' + IntToStr(port);;
IdSSLIOHandlerSocketOpenSSL.port := port;
IdSSLIOHandlerSocketOpenSSL.ssloptions.method := sslvSSLv3;
IdSSLIOHandlerSocketOpenSSL.ssloptions.mode := sslmUnassigned;
IDSMTP1 := TIDSMTP.Create(nil);
IDSMTP1.UserNAME := nombre;
IDSMTP1.password := password;
IDSMTP1.host := host;
IDSMTP1.port := port;
IDSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL;
IDSMTP1.UseTLS := utUseImplicitTLS;
Mensaje := TIdMessage.Create(nil);
with Mensaje do
begin
Body.Add(cuerpo);
From.Text := desde;
Recipients.EMailAddresses := hasta;
Subject := asunto;
Priority := TIdMessagePriority(mpHighest); CCList.EMailAddresses := '';
BccList.EMailAddresses := '';
if adjunto <> '' THEN
TIdAttachmentfile.Create(Mensaje.MessageParts, adjunto);
end;
with IDSMTP1 do
begin
try
Connect;
try
Send(Mensaje);
log(ExtractFilePath(application.ExeName) + 'emailseviados.log', hasta + '|' + asunto + '|' + cuerpo + '|' + adjunto);
finally
Disconnect;
end;
except
on e: EFOpenError do
begin
MessageDlg('No se ha podido enviar el email.' + #13 + 'Fichero Adjunto desconocido o erróneo.', mtError, [mbOK], 0);
end;
else
begin
MessageDlg('Fallo en el envio de email', mtError, [mbOK], 0);
end;
end;
end;
screen.cursor := crdefault;
ENd;