Herkese merhabalar,
Ufak bir projem delphi üzerinden mail gönderme fakat connection closed gracefully'den tutun dll bulunamadıya kadar bir sürü hata ile karşılaştım
suan en son aldığım hata = connection closed gracefully
bununla birlikte marco'dan tutun da bu formda bulunan benzer hatalara kadar hepsini inceledim fakat bir türlü uygulama konusunda başarılı olamadım.Sizce bu gracefully hatasını nasıl aşabilirim veya kodlarda nerede eksik ve hatalıyım
Eklediğim bileşenler;
IdSSLIOHandlerSocketOpenSSL1 = (method=sslvTLSv1)
IdSMTP1 =( useTLS=utUseExplicitTLS)
IdMessage1
IdServerIOHandlerSSLOpenSSL1 = (method=sslvTLSv1)
Kullandığım indy versiyon 10 ,delphi 2010
Button click deki kodlarım;
___________________________________________________________________________________
procedure TForm1.Button1Click(Sender: TObject);
var
DLLHandle: THandle;
DLLHandle2: THandle;
begin
DLLHandle := LoadLibrary(PWideChar(appPath+'libeay32.dll'));
DLLHandle2 := LoadLibrary(PWideChar(appPath+'ssleay32.dll'));
IdSMTP1.Host:='smtp.gmail.com';
IdSMTP1.Username:='benimmailadresim@gmail.com';
IdSMTP1.Password:='benimmailsifrem';
IdSMTP1.Port:=587;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode:=sslmClient;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth:=2;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode:=[];
IdSSLIOHandlerSocketOpenSSL1.Host:=IdSMTP1.Host;
IdSSLIOHandlerSocketOpenSSL1.Port:=IdSMTP1.port;
IdMessage1.From.Address:=edit1.text;
IdMessage1.CCList.EMailAddresses:=edit2.Text;
IdMessage1.Subject:=edit3.Text;
IdMessage1.Body.Add(memo1.Lines.Text);
IdSMTP1.Connect;
idsmtp1.Authenticate;
try
IdSMTP1.Send(IdMessage1);
Wait(5000);
ShowMessage('gitti');
finally
IdSMTP1.Disconnect;
end;
end;
___________________________________________________________________________________
procedure TForm1.FormCreate(Sender: TObject);
begin
appPath:=ExtractFilePath(Application.ExeName);
end;
___________________________________________________________________________________
Ufak not: proje içinde dll'ler bulunmaktadır
EDİT : windows 8'den sonra bazen problem yaratabiliyormuş çözüm yolu ise doğru işletim sisteminize uygun ssl'ler koymanız (bitlere dikkat edin)
Mail gönderme (GMAİL) [Çözüldü]
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Mail gönderme (GMAİL) [Çözüldü]
En son datamole tarafından 02 Eki 2015 03:04 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
-
- Üye
- Mesajlar: 43
- Kayıt: 01 Kas 2013 10:03
Re: Mail gönderme (GMAİL)
Ben aşağıdaki şekilde halletmiştim.
DLL ler exenin bulunduğu dizinde.
dfm:
object IdSMTP1: TIdSMTP
IOHandler = IdSSLIOHandlerSocketOpenSSL1
Host = 'smtp.gmail.com'
Password = '******'
Port = 587
SASLMechanisms = <>
UseTLS = utUseExplicitTLS
Username = 'xxxx@gmail.com'
end
object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
Destination = 'smtp.gmail.com:587'
Host = 'smtp.gmail.com'
MaxLineAction = maException
Port = 587
DefaultPort = 0
SSLOptions.Method = sslvSSLv23
SSLOptions.SSLVersions = [sslvSSLv2, sslvSSLv3, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]
SSLOptions.Mode = sslmUnassigned
end
object IdMessage1: TIdMessage
AttachmentEncoding = 'MIME'
Body.Strings = (
'mesaj test')
BccList = <>
CCList = <>
Encoding = meDefault
FromList = <
item
end>
Recipients = <
item
Address = 'aaa@abc.com.tr'
Text = 'aaa@abc.com.tr'
Domain = 'abc.com.tr'
User = 'aaa'
end>
ReplyTo = <>
Subject = 'konumuz'
ConvertPreamble = True
end
Pas:
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
DLL ler exenin bulunduğu dizinde.
dfm:
object IdSMTP1: TIdSMTP
IOHandler = IdSSLIOHandlerSocketOpenSSL1
Host = 'smtp.gmail.com'
Password = '******'
Port = 587
SASLMechanisms = <>
UseTLS = utUseExplicitTLS
Username = 'xxxx@gmail.com'
end
object IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL
Destination = 'smtp.gmail.com:587'
Host = 'smtp.gmail.com'
MaxLineAction = maException
Port = 587
DefaultPort = 0
SSLOptions.Method = sslvSSLv23
SSLOptions.SSLVersions = [sslvSSLv2, sslvSSLv3, sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2]
SSLOptions.Mode = sslmUnassigned
end
object IdMessage1: TIdMessage
AttachmentEncoding = 'MIME'
Body.Strings = (
'mesaj test')
BccList = <>
CCList = <>
Encoding = meDefault
FromList = <
item
end>
Recipients = <
item
Address = 'aaa@abc.com.tr'
Text = 'aaa@abc.com.tr'
Domain = 'abc.com.tr'
User = 'aaa'
end>
ReplyTo = <>
Subject = 'konumuz'
ConvertPreamble = True
end
Pas:
IdSMTP1.Connect;
IdSMTP1.Send(IdMessage1);
Re: Mail gönderme (GMAİL)
aynı geyik devam hocam değişen hiç bir şey yok ssl olarak kullandığınız dll'leri de yollayabilir misiniz acaba belki sürüm farklı muhabbeti yüzünden böyle yapıyordur
-
- Üye
- Mesajlar: 43
- Kayıt: 01 Kas 2013 10:03
Re: Mail gönderme (GMAİL)
EIdConnClosedGracefully error raised, with message : Connection Closed Gracefully. döndük başa
-
- Üye
- Mesajlar: 43
- Kayıt: 01 Kas 2013 10:03
Re: Mail gönderme (GMAİL)
Başka bir hesap açıp deneyebilir misin?
Re: Mail gönderme (GMAİL)
yok hocam aynı durumlar aynı kodlarla siz tekrar denediniz mi acaba diyorum yeni bir güvenlik protokolü ayarına falan mı geçti google