Kendi Mail Gönderme Programınızı Yapın - Delphi7

Konusu 'Delphi İle Başlangıç' forumundadır ve YoRuMSuZ tarafından 14 Ağustos 2008 başlatılmıştır.

  1. YoRuMSuZ

    YoRuMSuZ Biz işimize bakalım!

    Katılım:
    7 Haziran 2006
    Mesajlar:
    20.529
    Beğenileri:
    1.018
    Ödül Puanları:
    8.080
    Cinsiyet:
    Bay
    Öncelikle şunu belirtmeliyim ki programdan sağlık verimli alabilmeniz için SMTP desteği veren bir mailiniz olması gerekir. Eğer bir hosting sahibiyseniz size host firması bu desteği zaten veriyordur.

    Ücretsiz SMTP desteği veren hotpop.com var ancak çok sağlıksız çalışıyor.

    [Linkleri görebilmek için ÜYE olmalısınız!..] tanıttığım program da aynı mantıkla çalışıyor. Tek farkı eklenti eklenebilmesi.

    Programımıza geçelim. Çok yeni olsanız bile anlayacağınız şekilde anlatıyorum.

    Form üzerine Standart sekmesinde bulunan bileşenlerden 4 adet Edit, 1 adet Memo, 2 adet Button yerleştiriyoruz. Bir de mail gönderme durumumuzu gösteren Label bileşeni ekliyoruz. (Edit kutuları açıklamaları için de kendinize göre labeller girebilirsiniz)

    Şimdi Indy Clients sekmesinden bir adet IdSMTP, ve Indy Misc sekmesinden bir adet IdMessage bileşeni ekliyoruz.

    Artık formumuz yaklaşık alttaki gibi görünüyor olmalı. Siz tabii farklı bir yerleşim seçebilirsiniz.

    [​IMG]

    Form üzerine yerleştirdiğimiz IdSMTP1 bileşenini seçili hale getirip Object Inspector > Properties sekmesinden gerekli ayarları yapıyoruz. Buradaki ayarlar;

    AuthenticationType : atLogin
    Host : SMTP destekli host adresi (SMTP ayarlarında bunun nasıl girileceği zaten gösteriliyor)
    Password : Mail adresimizin şifresi
    Usarname : Mail adresimiz.

    [​IMG]

    Bu işlemde bittiğine göre "Gönder" butonuna tıklayarak mailimizi göndermek için gerekli kodları girmek kaldı.

    Form üzerine yerleştirdiğimiz botonlardan birinin Caption özelliğine Gönder, diğerine Kapat yazalım.

    Şimdi Button1'e çift tıklayıp OnClick yordamına şu kodları girin.

    Kod:
      IdMessage1.From.Address := Edit1.Text;
      IdMessage1.Recipients.EMailAddresses := Edit2.Text;
      IdMessage1.BccList.Add.Address := Edit3.Text;
      IdMessage1.Subject := Edit4.Text;
      IdMessage1.Body.Text := Memo1.Text;
     
      try
        try
          Label6.Caption := 'Lütfen Bekleyiniz ...';
          IdSMTP1.Connect(1000);
          IdSMTP1.Send(IdMessage1);
        except on E:Exception do
          Label6.Caption := 'Server meşgul. Daha sonra deneyin!';
         end;
      finally
        Label6.Caption := 'MESAJINIZ GÖNDERİLDİ';
        if IdSMTP1.Connected then IdSMTP1.Disconnect;
      end;
    
    F12 ye basıp form ekranına dönün ve Button2'ye çift tıklayıp OnClikk yordamına;
    Kod:
    Close;
    yazdık.

    İşlemimiz bu kadar. Artık F9 'a basıp programımızı derleyebilir ve hemen kendi mailimize bir ileti göndermekle deneme yapabiliriz.

    Kolay gelsin.

    Bu programla ilgili kaynak kodları [Linkleri görebilmek için ÜYE olmalısınız!..] indirebilirsiniz.

    Program derlenmiş halede şu şekilde görünecek.

    [​IMG]

    Form kaynak kodları yaklaşık alttaki şekilde görünüyor olmalı.
    Kod:
    unit Unit1;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, IdMessage, IdBaseComponent, IdComponent, IdTCPConnection,
      IdTCPClient, IdMessageClient, IdSMTP, StdCtrls;
     
    type
      TForm1 = class(TForm)
        Edit1: TEdit;
        Edit2: TEdit;
        Edit3: TEdit;
        Label1: TLabel;
        Label2: TLabel;
        Label3: TLabel;
        Edit4: TEdit;
        Label4: TLabel;
        Memo1: TMemo;
        Label5: TLabel;
        Button1: TButton;
        Button2: TButton;
        IdSMTP1: TIdSMTP;
        IdMessage1: TIdMessage;
        Label6: TLabel;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.dfm}
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      IdMessage1.From.Address := Edit1.Text;
      IdMessage1.Recipients.EMailAddresses := Edit2.Text;
      IdMessage1.BccList.Add.Address := Edit3.Text;
      IdMessage1.Subject := Edit4.Text;
      IdMessage1.Body.Text := Memo1.Text;
     
      try
        try
          Label6.Caption := 'Lütfen Bekleyiniz ...';
          IdSMTP1.Connect(1000);
          IdSMTP1.Send(IdMessage1);
        except on E:Exception do
          Label6.Caption := 'Server meşgul. Daha sonra deneyin!';
         end;
      finally
        Label6.Caption := 'MESAJINIZ GÖNDERİLDİ';
        if IdSMTP1.Connected then IdSMTP1.Disconnect;
      end;
    end;
     
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      Close;
    end;
     
    end.
  2. maqqab

    maqqab Üye

    Katılım:
    7 Mayıs 2009
    Mesajlar:
    1
    Beğenileri:
    0
    Ödül Puanları:
    20
    Güzel Paylaşım Fax Programını yapabilirmisin usta
  3. isyanx

    isyanx Üye

    Katılım:
    18 Haziran 2009
    Mesajlar:
    1
    Beğenileri:
    0
    Ödül Puanları:
    20
    ya kardeş ben gmail in smtp si nasıl olacak bilmiyorum ve "smtp.gmail.com" yazdım ama mail gelmedi. bir yardımcı olabilir misin rica etsem.
  4. YoRuMSuZ

    YoRuMSuZ Biz işimize bakalım!

    Katılım:
    7 Haziran 2006
    Mesajlar:
    20.529
    Beğenileri:
    1.018
    Ödül Puanları:
    8.080
    Cinsiyet:
    Bay
    GMail smtp ile birçok deneme yaptım ancak sonuç alamadım. Program anlatımında belirtmiştim, eğer bir web site sahibiyseniz host firmanız size zaten bu hizmeti sunacaktır. Mail gönderebilmek için en sağlıklı yöntem bu görünüyor.

    Ayrıca mail göndermek için gönderen kısmına kendi mailinizi yazmak zorunda kalmıyorsunuz. Yani istediğiniz mail adresini gönderen kısmına yazabiliyorsunuz. Aslında bu çalışmanın eğlenceli tarafı da bu zaten.
  5. izetolmaz_

    izetolmaz_ Üye

    Katılım:
    30 Ağustos 2009
    Mesajlar:
    2
    Beğenileri:
    0
    Ödül Puanları:
    20
    çok güzel olmuş yeniyim yardımlarınızı esirgemeyin

Sayfayı Paylaş