Connection Closed Gracefully - indy

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
gaus
Üye
Mesajlar: 227
Kayıt: 14 May 2014 07:36
İletişim:

Connection Closed Gracefully - indy

Mesaj gönderen gaus »

Kolay gelsin arkadaşlar ve hocalarım şimdi
Program belli işleri yaptıktan sonra mail gönderiyor
Ben kendimde denediğimde maili gönderdi exeyi başka arkadaşlara denettirdim onlarda da yükledi fakat asıl kullanılması gereken yerde baya bekliyor connection da oluyor debug ettiğğimde

Kod: Tümünü seç

smtp.sen(msg);
satırında bekliyor belli bir süre sonra da
"Connection Closes Gracefully" HATASI ALIYORUM
Kodlar :

Kod: Tümünü seç

procedure email_gonder(const html,maillist:string);
var
   SMTP: TIdSMTP;
  Msg: TIdMessage;
  HtmlPart:TIdText;
  idSASLLogin: TIdSASLLogin;
  idUserPassProvider: TIdUserPassProvider;
begin
  Msg := TIdMessage.Create(nil);
  try
    Msg.From.Address              := '....r';
    Msg.Recipients.EMailAddresses := maillist;
    Msg.Body.Text                 :='';
    Msg.Subject                   := 'Personel İzin Bildirimi';
    msg.ContentType               := 'multipart/related; type="text/html"';
    Msg.CharSet                   := 'iso-8859-9';
    HtmlPart                      :=TIdText.Create(msg.MessageParts);
    HtmlPart.ContentType          :='text/html';
    HtmlPart.CharSet              :='iso-8859-9';
    HtmlPart.Body.Text            :=html;


    SMTP                          := TIdSMTP.Create(nil);
    smtp.IOHandler                :=TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
    SMTP.UseTLS                   :=utUseExplicitTLS;
    TIdSSLIOHandlerSocketOpenSSL(SMTP.IOHandler).SSLOptions.Method:=sslvSSLv3;
    try

      SMTP.Host        := 'smtp.office365.com';
      SMTP.Port        := 587;
      SMTP.AuthType    := satDefault;
      idSASLLogin := TIdSASLLogin.Create(SMTP);
      idUserPassProvider := TIdUserPassProvider.Create(idSASLLogin);
      idSASLLogin.UserPassProvider := idUserPassProvider;

      idSASLLogin.UserPassProvider := idUserPassProvider;
    idUserPassProvider.Username := '...';
    idUserPassProvider.Password := '******';

     SMTP.AuthType := satSASL;
    SMTP.SASLMechanisms.Add.SASL := idSASLLogin;


      SMTP.Connect;
      smtp.Authenticate;
      SMTP.Send(Msg);
    finally
      SMTP.Free;
    end;
  finally
    Msg.Free;
  end;
end;


Efe
Üye
Mesajlar: 56
Kayıt: 09 Kas 2014 11:14

Re: Connection Closed Gracefully - indy

Mesaj gönderen Efe »

Merhaba

Araştırdığım kadarıyla, oluşan exception'ı try..except ile kullanman gerekiyor.

NOT: Ssleay32, Libeay32 dll dosyalarını projenize eklemiş olmanız gerekiyor.


Aşşağıdaki kodu projenize ekleyin.
try
//mail gönderme işlemleri
except

Kod: Tümünü seç

if E is EIdConnClosedGracefully then
else
  raise
end;

"Connection Closed Gracefully" exception'uyla ilgili aşşağıdaki makaleleri inceleyebilirsiniz.

http://www.swissdelphicenter.ch/en/showarticle.php?id=1

http://www.indyproject.org/kb/index.htm ... dconnc.htm
Cevapla