Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
smtp mail işleminde hata
#1
Merhaba arkadaşlar.

form üzerinden smtp mail göndermeye çalışıyorum. kullandığım sunucu yandex.
maili sorunsuz gönderebiliyorum fakat ikinci maili gönnderemiyorum TIdsmtp connect yapmıyor. programı kapatıp açtığım zaman tekrar mail gönderiyorum.
arka arkaya mail gönderebilmem için ne yapmam gerekir.

inherited;
 MemoLog.Lines.Clear;
 Application.ProcessMessages;
 MemoLog.Lines.Add('SMTP Test.');
 try
   if SMTP.Connected then SMTP.Disconnect;
   SMTP.Host := host;
  // SMTP.AuthType := satNone;
   SMTP.AuthType := satDefault;
   SMTP.Username := kullanici;
   SMTP.Password := sifre;

   SMTP.Port := 25;
   if StrToIntDef(smtpport, -1) > 0
     then SMTP.Port := StrToInt(smtpport);

   // SSL ayarları
   if (sifreleme = '<YOK>') then
   begin
     SMTP.UseTLS := utNoTLSSupport;
     SMTP.IOHandler := nil;
     SMTP.ConnectTimeout := 3000;
   end else
   begin
     MemoLog.Lines.Add('SMTP Test - SSL ayarları yapılıyor.');
     LHandler.Destination := SMTP.Host + ':' + IntToStr(SMTP.Port);
     LHandler.Host := SMTP.Host;
     LHandler.Port := SMTP.Port;
     LHandler.DefaultPort := 0;
     LHandler.SSLOptions.Method := sslvSSLv3;
     LHandler.SSLOptions.SSLVersions := [sslvSSLv3];
     LHandler.SSLOptions.Mode := sslmUnassigned; // sslmClient;
     LHandler.SSLOptions.VerifyMode := [];
     LHandler.SSLOptions.VerifyDepth := 0;
     SMTP.IOHandler := LHandler;

     if  (sifreleme='SSL') then
     begin
        SMTP.UseTLS := utUseImplicitTLS; // SSL
        end
        else if (sifreleme='SSL/TLS') then
        begin
        SMTP.UseTLS := utUseExplicitTLS; // SSL/TLS
     end;

     SMTP.ConnectTimeout := 10000;
   end;

   MemoLog.Lines.Add('SMTP Test - Bağlanılıyor.');
   SMTP.Connect;

  // MemoLog.Lines.Add('SMTP Test - Deneme e-postası gönderiliyor.');

   EPosta.Clear;
   EPosta.From.Address :=dm.mailayaroku.FieldByName('KULLANICI_ADI').AsString;// EditUSER.Text;
   EPosta.From.Name := dm.ayaroku.FieldByName('FIRMA_ADI').AsString; //EditUSER.Text + ' deneme kullanıcısı.';
   //EPosta.ReplyTo.EMailAddresses := EditUSER.Text;
   //EPosta.ReplyTo.Name := EditUSER.Text;

   with EPosta.Recipients.Add do
   begin
       if cxTextEdit2.Text > '' then
       begin
       Name := cxTextEdit2.Text;
       Address := cxTextEdit2.Text;
       end else
       begin
       Name := dm.mailayaroku.FieldByName('KULLANICI_ADI').AsString;
       Address := dm.mailayaroku.FieldByName('KULLANICI_ADI').AsString;
       end;
   end;

   EPosta.Subject := konu;
   EPostaIcerikHazirla();

   SMTP.Send(EPosta);
   MemoLog.Lines.Add('Bağlantı başarılı. "' + cxtextedit2.text + '" mail  gönderilmiştir.');
 finally
   MemoLog.Lines.Add('SMTP Test - Bağlantı sonlandırılıyor.');
  // if SMTP.Connected then SMTP.Disconnect;

 end;
 ShowMessage('E-posta gönderildi.');
Cevapla
#2
(12-03-2021, Saat: 15:58)ercanskose Adlı Kullanıcıdan Alıntı: Merhaba arkadaşlar.

form üzerinden smtp mail göndermeye çalışıyorum. kullandığım sunucu yandex.
maili sorunsuz gönderebiliyorum fakat ikinci maili gönnderemiyorum TIdsmtp connect yapmıyor. programı kapatıp açtığım zaman tekrar mail gönderiyorum.
arka arkaya mail gönderebilmem için ne yapmam gerekir.

inherited;
 MemoLog.Lines.Clear;
 Application.ProcessMessages;
 MemoLog.Lines.Add('SMTP Test.');
 try
   if SMTP.Connected then SMTP.Disconnect;
   SMTP.Host := host;
  // SMTP.AuthType := satNone;
   SMTP.AuthType := satDefault;
   SMTP.Username := kullanici;
   SMTP.Password := sifre;

   SMTP.Port := 25;
   if StrToIntDef(smtpport, -1) > 0
     then SMTP.Port := StrToInt(smtpport);

   // SSL ayarları
   if (sifreleme = '<YOK>') then
   begin
     SMTP.UseTLS := utNoTLSSupport;
     SMTP.IOHandler := nil;
     SMTP.ConnectTimeout := 3000;
   end else
   begin
     MemoLog.Lines.Add('SMTP Test - SSL ayarları yapılıyor.');
     LHandler.Destination := SMTP.Host + ':' + IntToStr(SMTP.Port);
     LHandler.Host := SMTP.Host;
     LHandler.Port := SMTP.Port;
     LHandler.DefaultPort := 0;
     LHandler.SSLOptions.Method := sslvSSLv3;
     LHandler.SSLOptions.SSLVersions := [sslvSSLv3];
     LHandler.SSLOptions.Mode := sslmUnassigned; // sslmClient;
     LHandler.SSLOptions.VerifyMode := [];
     LHandler.SSLOptions.VerifyDepth := 0;
     SMTP.IOHandler := LHandler;

     if  (sifreleme='SSL') then
     begin
        SMTP.UseTLS := utUseImplicitTLS; // SSL
        end
        else if (sifreleme='SSL/TLS') then
        begin
        SMTP.UseTLS := utUseExplicitTLS; // SSL/TLS
     end;

     SMTP.ConnectTimeout := 10000;
   end;

   MemoLog.Lines.Add('SMTP Test - Bağlanılıyor.');
   SMTP.Connect;

  // MemoLog.Lines.Add('SMTP Test - Deneme e-postası gönderiliyor.');

   EPosta.Clear;
   EPosta.From.Address :=dm.mailayaroku.FieldByName('KULLANICI_ADI').AsString;// EditUSER.Text;
   EPosta.From.Name := dm.ayaroku.FieldByName('FIRMA_ADI').AsString; //EditUSER.Text + ' deneme kullanıcısı.';
   //EPosta.ReplyTo.EMailAddresses := EditUSER.Text;
   //EPosta.ReplyTo.Name := EditUSER.Text;

   with EPosta.Recipients.Add do
   begin
       if cxTextEdit2.Text > '' then
       begin
       Name := cxTextEdit2.Text;
       Address := cxTextEdit2.Text;
       end else
       begin
       Name := dm.mailayaroku.FieldByName('KULLANICI_ADI').AsString;
       Address := dm.mailayaroku.FieldByName('KULLANICI_ADI').AsString;
       end;
   end;

   EPosta.Subject := konu;
   EPostaIcerikHazirla();

   SMTP.Send(EPosta);
   MemoLog.Lines.Add('Bağlantı başarılı. "' + cxtextedit2.text + '" mail  gönderilmiştir.');
 finally
   MemoLog.Lines.Add('SMTP Test - Bağlantı sonlandırılıyor.');
  // if SMTP.Connected then SMTP.Disconnect;

 end;
 ShowMessage('E-posta gönderildi.');

Merhaba,

aldığınız hata nedir? Ben mi göremedim? Sadece SMTP connnect etmek yetersizdi diye hatırlıyorum; yanlış hatırlıyor olabilirim. 
https://github.com/halilhanbadem/HHBMail...ent_Source
Şuradaki kodları referans alabilirsiniz.
kisisel_logo_dark.png
WWW
Cevapla
#3
ilk maili gönderiyorum. ikinci mail de 'connection closed gracefully' hatası alıyorum.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Değişik bir hata ikurt07 2 203 30-03-2024, Saat: 14:34
Son Yorum: ikurt07
  Rest Hata Yakalama m_ekici 9 1.562 08-03-2024, Saat: 19:30
Son Yorum: aegean
  Gmail Mail Gönderirken Connection Gracefuly Hatası COMMANDX 0 221 02-02-2024, Saat: 15:21
Son Yorum: COMMANDX
  Tanım Bulamadım Bu Hata İçin hi_selamlar 11 1.475 30-10-2023, Saat: 18:20
Son Yorum: hi_selamlar
  delphi de garip bir hata ercanskose 11 1.593 26-07-2023, Saat: 12:00
Son Yorum: delphiman



Konuyu Okuyanlar: 1 Ziyaretçi