Ver Mensaje Individual
  #15  
Antiguo 19-05-2016
elguille elguille is offline
Miembro
 
Registrado: ene 2005
Posts: 114
Reputación: 20
elguille Va por buen camino
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.MaxLineAction := maException;
  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;

  // Si ha conectado enviamos el mensaje y desconectamos
  if SMTP.Connected then
  begin
    try
      // SMTP.SendCmd('STARTTLS', 220);
      SMTP.Send(Mensaje);
    except
      result := 'Fallo en el envio de email';
    end;

    try
      SMTP.Disconnect;
    except
      result := 'Error al desconectar del servidor.';
    end;
  end;

  // Liberamos los objetos creados
  if adjunto <> nil then
    FreeAndNil(adjunto);

  FreeAndNil(Mensaje);
  FreeAndNil(SMTP);

end;
Responder Con Cita