用Delphi編寫SMTP郵件發送程式

來源:互聯網
上載者:User

  平時你使用的是什麼工具寄送電子郵件?是Outlook,Foxmail或是其它?無論以前是什麼,現在你都可以多一種選擇:使用自己編寫的郵件發送程式。而且對於Delphi來說,要完成它是如此的簡單,那就讓我們動手吧!

  構件組成


  Delphi 5構件板的FastNet頁中,提供了TNMSmtp構件,它的功能就在於將郵件發送到指定的郵件伺服器。其最常用的屬性和方法如下:

  Host:SMTP郵件伺服器的地址,如SMTP.SINA.COM.CN

  Port:SMTP郵件伺服器的連接埠號碼,一般用其預設值25即可

  UserID:使用者名稱,當與郵件伺服器建立串連時,需驗證使用者名稱

  PostMessage.FromAddress:寄件者地址

  PostMessage.ToAddress:收件者地址

  PostMessage.Attachments:郵件附件的檔案清單

  PostMessage.Body:郵件的本文

  PostMessage.Subject:郵件的主題

  Connect方法:建立與SMTP伺服器的串連,串連前需指定Host和UserID

  Disconnect方法:斷開與伺服器之間的串連

  SendMail方法:將當前郵件發送到伺服器

  當然,TNMSmtp構件還有很多其它的屬性、方法、事件,在這裡我們不作介紹,需要時大家可以查閱相關資料或Delphi的協助資訊。

  實現方式

  首先在Form1中加入相應的TLabel、TEdit、TMemo、TButton、TListBox、TOpenDialog和TNMSmtp構件。其中,TMemo用於書寫郵件內容,TListBox顯示附件項目,TOpenDialog(檔案開啟對話方塊)用於選擇附件檔案,按鈕Button1添加附件,按鈕Button2串連伺服器並發送郵件。程式的具體代碼如下:

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  if OpenDialog1.Execute then ListBox1.Items.Add(OpenDialog1.FileName);

  //將選擇的檔案項添加到ListBox1中,作為附件

  end;

  procedure TForm1.Button2Click(Sender: TObject);

  begin

  NMSmtp1.Host:=Edit3.Text; //SMTP伺服器位址

  NMSmtp1.UserID:=Edit4.Text; //你在對應伺服器上的註冊使用者名稱

  NMSmtp1.Connect; //與伺服器建立串連

  NMSmtp1.PostMessage.FromAddress:=Edit5.Text; //寄件者的郵件地址

  NMSmtp1.PostMessage.Subject:=Edit2.Text; //郵件主題

  NMSmtp1.PostMessage.ToAddress.Add(Edit1.Text); //收件者的郵件地址

  NMSmtp1.PostMessage.Attachments.AddStrings(ListBox1.Items); //附件

  NMSmtp1.PostMessage.Body.Assign(Memo1.Lines); //郵件的本文

  NMSmtp1.SendMail; //發送郵件

  NMSmtp1.Disconnect; //中斷連線

  ShowMessage('發送完畢!'); //發送完時顯示提示資訊

  end;

  以作者為例:我的一個郵箱為dyhuyz@163.com,利用SMTP.163.com郵件伺服器向《中國電腦教育報》編輯部發信時,在Edit1中填入編輯部的地址soft@cce.com.cn,Edit2中寫上主題,Edit3中填入SMTP.163.com,Edit4中填入使用者名稱dyhuyz,Edit5中填入我的地址dyhuyz@163.com,添加附件後,單擊發送按鈕,一切OK了!

  注意事項

  需要特別說明的是:目前部分網站的SMTP郵件伺服器要對發送郵件的使用者進行身分識別驗證,即要求給出使用者名稱和密碼資訊,否則無法發送,包括163.net,263.net,sina.com,sohu.com等均在此列。而Delphi 5的TNMSmtp構件本身未提供“密碼”屬性,採用以上簡單方法,不能利用這些伺服器發送郵件,否則會出現錯誤資訊;Delphi 6中用Indy構件組取代了Delphi 5中的FastNet構件組,其中的SMTP包含有身分識別驗證的相關資訊,可以很方便地解決這個問題。另一部分網站,如China.com,163.com等,則不要求身分識別驗證,利用本程式,盡可暢通無阻。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.