Renk Seçimi
+ + + + + + + + + + + + + + X

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:
    21.534
    Beğenileri:
    2.372
    Ödül Puanları:
    9.580
    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.

    Burada 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ı BURADAN 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 Üyecik

    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 Üyecik

    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:
    21.534
    Beğenileri:
    2.372
    Ödül Puanları:
    9.580
    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_ Üyecik

    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
     
  6. eeou

    eeou Üyecik

    Katılım:
    16 Eylül 2009
    Mesajlar:
    1
    Beğenileri:
    0
    Ödül Puanları:
    20
    Yararlı bir paylaşım, teşekkürler
     
  7. mazlum00

    mazlum00 Üye

    Katılım:
    13 Ocak 2011
    Mesajlar:
    10
    Beğenileri:
    0
    Ödül Puanları:
    20
    selam arkdaşlar ben progrmamı çalıştırııyorum
    kodların IdSMTP1.Send(IdMessage1); bu kısmınta hata veriyor bana yardımcı olurmusunuz...
     
  8. YoRuMSuZ

    YoRuMSuZ Biz işimize bakalım!

    Katılım:
    7 Haziran 2006
    Mesajlar:
    21.534
    Beğenileri:
    2.372
    Ödül Puanları:
    9.580
    Cinsiyet:
    Bay
    Hocam kendi SMTP ayarlarınıza göre düzenlemeniz gerekiyor o bölümü. İlk konuda ilgili resmi vermiştik. Oradaki ayarları düzgün yaparsanız sorunsuz çalışacaktır.
     
  9. mazlum00

    mazlum00 Üye

    Katılım:
    13 Ocak 2011
    Mesajlar:
    10
    Beğenileri:
    0
    Ödül Puanları:
    20
    Hocam şifreleme bölümünde mail göndereceğimiz şifremizimi girecez..?
    o bölüm biraz kafamı karıştırdı da yardımcı olursanız sevinirim..
    Teşekkür ederim...
     
  10. berxudar

    berxudar Üyecik

    Katılım:
    22 Ocak 2011
    Mesajlar:
    1
    Beğenileri:
    0
    Ödül Puanları:
    20
    ya hocam herseyı aynen yaptım smtp olark smtp.cerezforum.com


    kulandım socket 110001 erorr verıyor ya...
     

Sayfayı Paylaş