Mail gönderme (GMAİL) [Çözüldü]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
datamole
Üye
Mesajlar: 14
Kayıt: 01 Eki 2014 01:45

Mail gönderme (GMAİL) [Çözüldü]

Mesaj gönderen datamole »

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)
En son datamole tarafından 02 Eki 2015 03:04 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
AliCinkilic
Üye
Mesajlar: 43
Kayıt: 01 Kas 2013 10:03

Re: Mail gönderme (GMAİL)

Mesaj gönderen AliCinkilic »

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);
datamole
Üye
Mesajlar: 14
Kayıt: 01 Eki 2014 01:45

Re: Mail gönderme (GMAİL)

Mesaj gönderen datamole »

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
datamole
Üye
Mesajlar: 14
Kayıt: 01 Eki 2014 01:45

Re: Mail gönderme (GMAİL)

Mesaj gönderen datamole »

EIdConnClosedGracefully error raised, with message : Connection Closed Gracefully. döndük başa
AliCinkilic
Üye
Mesajlar: 43
Kayıt: 01 Kas 2013 10:03

Re: Mail gönderme (GMAİL)

Mesaj gönderen AliCinkilic »

Başka bir hesap açıp deneyebilir misin?
datamole
Üye
Mesajlar: 14
Kayıt: 01 Eki 2014 01:45

Re: Mail gönderme (GMAİL)

Mesaj gönderen datamole »

yok hocam aynı durumlar aynı kodlarla siz tekrar denediniz mi acaba diyorum yeni bir güvenlik protokolü ayarına falan mı geçti google
Cevapla