SSL ile mail gönderme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
esrehmaan

Re: SSL ile mail gönderme

Mesaj gönderen esrehmaan »

hocam direk yazdığınız programınız nerde ise oraya direk olarak koyun. project1.exe nin yanına yani
nuran
Üye
Mesajlar: 43
Kayıt: 07 Tem 2008 03:50

Re: SSL ile mail gönderme

Mesaj gönderen nuran »

çalıştırdığım program
c:\mailgonder\projectmailssl
mailgonder klasoru altında, dll leri c:\mailgonder klasorune koydum, ancak sorun devam ediyor.
Kodlamayı size gönderiyorum.
Aralara showmessage 'le koydum.. showmessage('222') yi gösteriyor, hemen sonra hataya duşuyor.

IdSMTP.Send(IdMessage);
bunu yapamıyor, bunu yapabilse, mail gönderildi mesajına düşecek, ama 'Send' yapamıyor...hataya düşüyor.


num:=MessageDlg('Tüm İşlemeleriniz Bittimi ? Mail Gönderilsinmi ? ', msgtipi,[mbyes,mbno,mbcancel],0);
if num = mrYes then
begin

IdSMTP := TIdSMTP.Create(nil);
ekm:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'mail.ini');
try
IdSMTP.host:=ekm.Readstring('Form','host','');
IdSMTP.username:=ekm.Readstring('Form','username','');
IdSMTP.Password:=ekm.Readstring('Form','Password','');
IdSMTP.port:=ekm.ReadInteger('Form','Port',1);// vs uzatabilirsin
finally
ekm.Free;
end;

IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv2 ;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 2;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := [];
IdSSLIOHandlerSocketOpenSSL1.Host := IdSMTP.Host;
IdSSLIOHandlerSocketOpenSSL1.Port := IdSMTP.Port;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv3;
IdSMTP.IOHandler := IdSSLIOHandlerSocketOpenSSL1.create ;
//IdSMTP.UseTLS := utUseImplicitTLS ;


toadres := 'n.sentuna@kocaertekstil.com';

fromadres:= 'n.sentuna@kocaertekstil.com';

IdMessage:=TIdMessage.Create(nil);
IdMessage.From.address := fromadres;
IdMESSAGE.Recipients.EMailAddresses:= toadres;
IdMESSAGE.CClist.EMailAddresses:= fromadres;
IdMessage.Subject:= konu2;
dosya:= 'c:\mailgonder\deneme.txt' ;
eklidosya := TIdAttachmentFile.Create(Idmessage.MessageParts, dosya);
IdSMTP.Connect;
showmessage('111');
IdSMTP.Authenticate;
try
showmessage('222');
IdSMTP.Send(IdMessage);
ShowMessage('Mail Gönderildi.');

finally
IdSMTP.Disconnect;
IdSMTP := TIdSMTP.Create(nil);
end;


Close;
end;
esrehmaan

Re: SSL ile mail gönderme

Mesaj gönderen esrehmaan »

yollayın bi bakalım sonrada burdan paylaşalım
En son esrehmaan tarafından 17 May 2012 05:50 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
nuran
Üye
Mesajlar: 43
Kayıt: 07 Tem 2008 03:50

Re: SSL ile mail gönderme

Mesaj gönderen nuran »

msn yok bende, mail adresinize kodları gönderdim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: SSL ile mail gönderme

Mesaj gönderen conari »

3 dll den bahsediliyor. ya program klasörü yada system32
libssl32.dll
ssleay32.dll
libeay32.dll

bir kaynakta yükleme için şunu yapmış.

procedure TForm1.FormCreate(Sender: TObject);
begin
IdSSLOpenSSLHeaders.Load;
end;
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
nuran
Üye
Mesajlar: 43
Kayıt: 07 Tem 2008 03:50

Re: SSL ile mail gönderme

Mesaj gönderen nuran »

indy altına
IdSSLOpenSSLHeaders bulamadım..
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: SSL ile mail gönderme

Mesaj gönderen yusuf simsek »

benzer bir hatayı ben de yaşadım,

http://indy.fulgan.com/SSL/Archive/ adresinden INDY versiyonunuz ile ilgili uygun DLL bulup Exenin olduğu klasöre atarsanız sorununuz çözümlenecektir düşüncesindeyim.
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
nuran
Üye
Mesajlar: 43
Kayıt: 07 Tem 2008 03:50

Re: SSL ile mail gönderme

Mesaj gönderen nuran »

İndirdim ancak,
IdSMTP.Send(IdMessage);

sen işlemini yapamadı, küçük kare içinde kırmızı çarpı işareti geliyor.

Server yeni kruldu bizim.
Kurulum oldukdan sonra mailleirm gitmemeye başladı.
Benden kerbereos , ntlm kullanmamı istediler.
Ama ben bunları nasıl kullanacağımı bilmiyorum.
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Re: SSL ile mail gönderme

Mesaj gönderen dynamo »

nuran yazdı:İndirdim ancak,
IdSMTP.Send(IdMessage);

sen işlemini yapamadı, küçük kare içinde kırmızı çarpı işareti geliyor.
libeay32.dll,ssleay32.dll,mail.ini ve deneme.txt dosyalarını Win32\Debug klasörü içine de atmalısın.O hata mesajı bundan kaynaklanıyor...

şimdi Delphi XE2 ile bir örnek yaptım.Maili başarıyla gönderdi. mail.ini dosyası içindeki Host , Username , Password kendi smtp ayarlarınızı girmeyi unutmayın.SMTP Port 587 dir.

Kod: Tümünü seç

unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdIOHandler,
  IdIOHandlerSocket, IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdServerIOHandler,
  IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,IniFiles,
  IdExplicitTLSClientServerBase, IdMessageClient, IdSMTPBase, IdSMTP, IdAttachmentFile,
  IdMessage;

type
  TForm1 = class(TForm)
    IdSMTP1: TIdSMTP;
    IdServerIOHandlerSSLOpenSSL1: TIdServerIOHandlerSSLOpenSSL;
    IdSSLIOHandlerSocketOpenSSL1: TIdSSLIOHandlerSocketOpenSSL;
    Button1: TButton;
    IdMessage1: TIdMessage;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  appPath:WideString;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  appPath:=ExtractFilePath(Application.ExeName);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
ekm:Tinifile;
eklidosya: TIdAttachmentFile;
IdAttachmentfile: TIdAttachmentfile;
IdSSLIO : TIdSSLIOHandlerSocketOpenSSL;
DLLHandle: THandle;
DLLHandle2: THandle;
address : pointer;
num:integer;
toadres,fromadres,konu2,dosya:string;
begin

DLLHandle := LoadLibrary(PWideChar(appPath+'libeay32.dll'));
DLLHandle2 := LoadLibrary(PWideChar(appPath+'ssleay32.dll'));
num:=MessageDlg('Tüm İşlemeleriniz Bittimi ? Mail Gönderilsinmi ? ', mtCustom,[mbyes,mbno,mbcancel],0);
if num = mrYes then
begin

//IdSMTP1 := TIdSMTP.Create(nil);
ekm:=TIniFile.Create(appPath+'mail.ini');
try
IdSMTP1.host:=ekm.Readstring('SMTP','Host','');
IdSMTP1.username:=ekm.Readstring('SMTP','Username','');
IdSMTP1.Password:=ekm.Readstring('SMTP','Password','');
IdSMTP1.port:=ekm.ReadInteger('SMTP','Port',587);//
finally
ekm.Free;
end;

IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv2 ;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmClient;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 2;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyMode := [];
IdSSLIOHandlerSocketOpenSSL1.Host := IdSMTP1.Host;
IdSSLIOHandlerSocketOpenSSL1.Port := IdSMTP1.Port;
IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvSSLv3;
IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1.create ;

toadres := 'n.sentuna@kocaertekstil.com';

fromadres:= 'n.sentuna@kocaertekstil.com';

//IdMessage:=TIdMessage.Create(nil);
IdMessage1.From.address := fromadres;
IdMessage1.Recipients.EMailAddresses:= toadres;
IdMessage1.CClist.EMailAddresses:= fromadres;
IdMessage1.Subject:= konu2;
dosya:= appPath+'deneme.txt' ;
eklidosya := TIdAttachmentFile.Create(Idmessage1.MessageParts, dosya);
IdSMTP1.Connect;
IdSMTP1.Authenticate;
try
IdSMTP1.Send(IdMessage1);
ShowMessage('Mail Gönderildi.');

finally
IdSMTP1.Disconnect;
//IdSMTP := TIdSMTP.Create(nil);
end;


//Close;
end;
end;

end.
örnek uygulama : (Delphi XE2 kullanarak yapıldı.)

indymailssl.rar - 3.8 Mb
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: SSL ile mail gönderme

Mesaj gönderen haydarxxx »

dynamo tam bir proje olmuş.Bu dosyayı bir eklenti yapmadan kullanabilirmiyiz.Yani bir dll falan şartmı ben delphi7 de çalıştırdım projeyi ama mail atamadım tabiii :? birde benim gmail,hotmail lerim var bunların SMTP bilgilerini nasıl buluruz.gmail,hotmail buna izin veriyormu bu programdan istediğimiz kişilere mail atabiliyormuyuz.Kullanımı konusunda biraz açıklama yapabilirmisiniz.
Kullanıcı avatarı
dynamo
Üye
Mesajlar: 96
Kayıt: 21 Haz 2005 02:05
Konum: istanbul

Re: SSL ile mail gönderme

Mesaj gönderen dynamo »

bu örnek SSL kullanarak mail gönderir.SSL kullanmadan yani dll dosyalara gerekmeden mail gönderme ile ilgili internette bir çok örnek bulabilirsiniz.SMTP bilgileri, web hosting hizmeti sağlayan şirketlerden alınır.İnternetten size ait bir alandı varsa,SMTP ayarlar:
Host : mail.alanadiniz.com
Kullanici Adi : e-mail adresinizin tamamı
Şifreniz : Mail şifreniz

gmail,hotmail'de SMTP ayarları nasıl yapılır bilmiyorum.Aşağıdaki linkte Gmail ile SMTP kullanımı hakkında bazı açıklamalar var:

http://analystdeveloper.com/blogs/gurka ... /3484.aspx
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: SSL ile mail gönderme

Mesaj gönderen haydarxxx »

SSL kullanmadan yani dll dosyalara gerekmeden mail gönderme
ile dll kullanma arasındaki fark ne hocam ? Birde indy bileşenlerinde ssl desteği var biliyorum sizin yaptığınız projede böyle bir destek ayarı var mı bende indy yüklü.Varsa buradan toplu mail ata biliyormuyuz.Atılabiliyorsa ne yapabiliriz döngü işlemimi.Biri mail makalesi yazsa çok iyi olacak galiba SSL li SSL siz :roll:
Kullanıcı avatarı
haydarxxx
Üye
Mesajlar: 668
Kayıt: 09 May 2005 11:31
Konum: izmir

Re: SSL ile mail gönderme

Mesaj gönderen haydarxxx »

Yokmu bir mail atma makalesi, projesi ömür törpüsü oldu bu mail.Bilen birileri ayrıntılı olarak anlatsa şu olayı.Hangi companentler lazımdan her türlü mail adresine mail atma,dosya ekleme vs.vs akılda soru kalmayacak şekilde.Çok mu şey istemiş oluruz.Bir çok üye bunu bekliyor ve bu forumdan rica ediyordur eminim.Ben denediğim bir çok mail kodlarından atamadım.Eksiğim ne onuda anlayamadım.Armadan google çökecek
Kullanıcı avatarı
chnyildirim
Üye
Mesajlar: 39
Kayıt: 25 Haz 2003 01:51
İletişim:

Re: SSL ile mail gönderme

Mesaj gönderen chnyildirim »

Delphi7 ssl mail gönderimde takıldım kaldım...

Resim

indy versiyonum "indy10.0.52"
Bi çok dll denedim.
Sonuçsuz...


Bi yardım...

dynamo yazdı:
nuran yazdı:İndirdim ancak,
IdSMTP.Send(IdMessage);

sen işlemini yapamadı, küçük kare içinde kırmızı çarpı işareti geliyor.
libeay32.dll,ssleay32.dll,mail.ini ve deneme.txt dosyalarını Win32\Debug klasörü içine de atmalısın.O hata mesajı bundan kaynaklanıyor...

şimdi Delphi XE2 ile bir örnek yaptım.Maili başarıyla gönderdi. mail.ini dosyası içindeki Host , Username , Password kendi smtp ayarlarınızı girmeyi unutmayın.SMTP Port 587 dir.
Kullanıcı avatarı
warder
Üye
Mesajlar: 255
Kayıt: 10 Mar 2004 04:59

Re: SSL ile mail gönderme

Mesaj gönderen warder »

DLL den önce bence bağlantı ayarlarınızı gözden geçirin.
SSL ile ilgisi yanlış ayar ya da yapılandırma olabilir.
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Cevapla