Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Pregunta al enviar correo (https://www.clubdelphi.com/foros/showthread.php?t=59106)

El_Perrito 13-08-2008 02:50:28

Pregunta al enviar correo
 
Antes que nada, hola a todos en el foro:

Uso delphi 7 y las indy version 9, tengo un problema tengo un procedimiento con el cual envio correos desde mi aplicación y todo funcionaba perfectamente bien con el cliente que usaba el sistema, solo que un dia cambiaron de servidor los dominios y ahi empezo el problema en outlook, windows mail e incredimail sale la siguiente leyenda al enviar un correo:

"El servidor al cual esta conectado esta utilizando un certificado de seguridad que no pudo ser comprobado
El nombre CN del certificado no coincide con el valor pasado
Desea continuar utilizando este servidor?"

y pone los botones Si y No le doy y se va el correo pero desde mi aplicación no se va y a lo ultimo me manda el mensaje "connection closed gracefully" me imagino que quizas se queda esperando una respuesta pero como la pregunta no sale oes no hay respuesta y el correo no se va
Este es mi codigo de delphi
Código Delphi [-]
procedure TFSCHCAPHC.BitBtn1Click(Sender: TObject);
var
  NomArch:String;
  Cuerpo:TStringList;
  y:Integer;
begin
  NomArch:='C:\Sis Agag\Tmp\Bitacora'+Ceros(IntToStr(scod),6)+'CH.Pdf';
  Cuerpo:=TStringList.Create;
  Application.CreateForm(TFSCHCAPHI, FSCHCAPHI);
  try
    FSCHCAPHI.IniciaDatos(scod);
    FSCHCAPHI.QuickRep1.ExportToFilter(TQRPDFDocumentFilter.Create(NomArch));
    TIdAttachment.Create(IdMessage1.MessageParts,NomArch);
    ProgressBar1.MaxValue:=Progressbar1.MaxValue+SizeFile(NomArch);
    Cuerpo.Add('Le adjunto el archivo en Pdf de la bitacora de Codigo de Iniforme ');
    Cuerpo.Add(' Atte. ');
    Cuerpo.Add(' Lic. Rosario Cital. ');
    IdMessage1.Body.Assign(Cuerpo);
    //Aqui se ponen los datos del correo
    IdMessage1.From.Text :=QuitaEspacios(DMSCH.FT_EmprEMAIL.AsString);
    IdMessage1.Recipients.EMailAddresses := QuitaEspacios(Edit1.Text); { To: header }
    IdMessage1.Subject := Edit2.Text; { Subject: header }
    IdMessage1.CCList.EMailAddresses := QuitaEspacios(Edit3.Text); {CC}
    IdMessage1.BccList.EMailAddresses := QuitaEspacios(Edit4.Text); {BBC}
    //Aqui va la configuración del Correo
    if DMSCH.FT_EmprSSL.AsString='Si' then begin
      SSL2.SSLOptions.Method := sslvTLSv1;
      SSL2.PassThrough := True;
      SMTP.IOHandler := SSL2;
      SMTP.Port :=465;
    end
    else
      SMTP.Port := 25;
    SMTP.AuthenticationType := atLogin;
    SMTP.Username := QuitaEspacios(dmsch.FT_EmprEMAIL.AsString);
    SMTP.Password := QuitaEspacios(DMSCH.FT_EmprPassEmail.AsString);
    SMTP.Host := QuitaEspacios(DMSCH.FT_EmprHOST.AsString);
    StatusBar.Panels[1].text:='Iniciando Envio....';
    SMTP.Connect;

    if DMSCH.FT_EmprSSL.AsString='Si' then begin
      SMTP.SendCmd('STARTTLS', 220);
      SSL2.PassThrough := False;
    end;

    if (SMTP.AuthenticationType <> atNone) then
      SMTP.Authenticate;
    try
      SMTP.Send(IdMessage1);
    finally
      SMTP.Disconnect;
    end;
  finally
    FSCHCAPHI.Free;
  end;
end;

agradezco cualquier comentario de su parte o sugerencia.

Gracias por todo.

El_Perrito 23-08-2008 20:48:48

Por si les pasa
 
Finalmente encontre la solución a mi problema al enviar los correos. Aunque la verdad no me queda claro el porque. Solo cambie dos cosas:

1: la propiedad del SSL2 PassThrough la cambie de True a False

2: quita la linea del codigo SMTP.SendCMd('STARTTLS',220);

y ahora si los correos se van como si nada.

Gracias de igual manera ahi dejo mi comentario por si alguien llegara a tener un problema similar. :D


La franja horaria es GMT +2. Ahora son las 21:22:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi