A mi el código me ha dejado de funcionar hace tres dias para clientes diferentes con cuentas diferentes ¿¿??¿
He encontrado este código en internet
http://dejensever.com/2013/09/03/del...reos-por-smtp/ que me parece que de momento si funciona aunque no se que pasará día 1 de junio cuando quiten de forma definitiva sslv3.
Código Delphi
[-]function EnviarMensaje(sUsuario, sClave, sServidor, sAdjunto, sAsunto, sDestino, sMensaje: String; iPort: integer): String;
var
SMTP: TIDSMTP;
Mensaje: TIdMessage;
adjunto: TIdAttachmentfile;
IOHSOSSL: tIdSSLIOHandlerSocketOpenSSL;
begin
IdSSLOpenSSLHeaders.Load;
result := 'Mensaje enviado correctamente.';
IOHSOSSL := tIdSSLIOHandlerSocketOpenSSL.Create;
IOHSOSSL.Destination := sServidor + ':' + IntToStr(iPort);
IOHSOSSL.host := sServidor;
IOHSOSSL.port := iPort;
IOHSOSSL.ssloptions.method := sslvTLSv1;
IOHSOSSL.ssloptions.VerifyMode := [];
IOHSOSSL.ssloptions.VerifyDepth := 0;
SMTP := TIDSMTP.Create(nil);
SMTP.IOHandler := IOHSOSSL;
SMTP.UserNAME := sUsuario;
SMTP.password := sClave;
SMTP.host := sServidor;
SMTP.port := iPort;
SMTP.UseTLS := utUseRequireTLS;
Mensaje := TIdMessage.Create(nil);
Mensaje.Clear;
Mensaje.From.Name := sDestino;
Mensaje.From.Address := sDestino;
Mensaje.Subject := sAsunto;
Mensaje.Body.Text := sMensaje;
Mensaje.Recipients.Add;
Mensaje.Recipients.Items[0].Address := sDestino;
if sAdjunto <> '' then
begin
if FileExists(sAdjunto) then
adjunto := TIdAttachmentfile.Create(Mensaje.MessageParts, sAdjunto);
end
else
adjunto := nil;
try
SMTP.Connect;
except
result := 'Error al conectar con el servidor.';
end;
if SMTP.Connected then
begin
try
SMTP.Send(Mensaje);
except
result := 'Fallo en el envio de email';
end;
try
SMTP.Disconnect;
except
result := 'Error al desconectar del servidor.';
end;
end;
if adjunto <> nil then
FreeAndNil(adjunto);
FreeAndNil(Mensaje);
FreeAndNil(SMTP);
end;