12-03-2021, Saat: 15:58
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.
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.
Kod: (Select All)
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.');