用C++ Builder實現電子郵件群發

來源:互聯網
上載者:User

摘 要:本文簡單闡述了寄送電子郵件的原理,提出了一種基於C++ Builder和Access2000資料庫來實現電子郵件群發的方法,詳細介紹了C++ Builder 中TIdSMTP組件的使用,並給出了用TIdSMTP組件實現群發的核心範例程式碼。

關鍵詞:電子郵件群發;認證;TIdSMTP;TIdMessage;ADO

引言

郵件群發這一手段被廣泛應用於電子商務、網路營銷中,例如我們現在能夠通過chnia-pub.com(互動出版網)的書訊群發郵件瞭解到當前新書的資訊,據統計在美國有超過70%的Internet使用者的線上購物行為要歸功於Email營銷,另外那些建設了區域網路的單位也可以通過郵件群發來發送通知或傳達檔案,這樣能夠節省大量的人力物力而且方便迅速。本文簡單介紹了寄送電子郵件的原理,提出了一種基於C++Builder和Access2000資料庫實現電子郵件群發的方法,詳細介紹了C++Builder 中TIdSMTP組件的使用,並給出了用TIdSMTP組件實現群發的核心範例程式碼。

寄送電子郵件的原理

1、SMTP協議

SMTP協議是IETF(Internet Engineering Task Force)制訂的有關電子郵件系統的標準協議組中的一員,它的目的就是實現有效(efficiently)和可靠的(reliably)郵件傳輸,主要對怎樣將電子郵件從發送方地址傳送到接收方地址,也就是對傳輸的規則做了規定。SMTP協議中的主要角色是SMTP發信機和SMTP收信機,但是一個SMTP伺服器可能兼有兩種角色。SMTP協議採用了一組簡單的命令來建立串連並在主機之間傳送命令和資料。SMTP發信機向SMTP收信機發出SMTP命令,如:"MAIL FROM: <mybox@hunau.net&gt;"就是告知SMTP收信機郵件的來源,待收到命令後SMTP收信機則會響應應答SMTP命令,即會返回一個應答碼,應答碼一般為一個三位的十進位數,而且每一個數都有特定含義的,例如返回"250"表示要求的郵件操作完成。其他的SMTP命令和應答碼在RFC821中有詳細的描述,此處不再贅述。

2、ESMTP協議

目前,為了防止網路上垃圾郵件的泛濫,幾乎所有的郵件服務提供者都在原來的SMTP伺服器上追加了認證功能,但實際上SMTP協議本身並不具有認證的功能,在1999年3月出台的SMTP服務認證功能擴充(SMTP Service Extension for Authentication,RFC2544),即ESMTP中才定義了怎樣在SMTP用戶端與伺服器之間來建立一種認證機制,執行認證協議的交換,同時擴充也為以後的協議互動進行了安全層的協商。該擴充是簡單認證和安全層(Simple Authentication and Security Layer,SASL)的一個方面。

SMTP認證功能的擴充實際實際上是增加了AUTH命令,AUTH命令的認證方式主要有LOGIN、CRAM-MD5和PLAIN等幾種,我國目前使用得比較多的是LOGIN方式認證。SMTP認證一般是在發送郵件之前進行一次,採用口令-應答(Challenge-Response)方式,即由伺服器發送命令要求用戶端回答,用戶端根據伺服器發送資訊進行回答,如果應答通過了,則認證成功,即可繼續下一步處理。

用C++Builder實現郵件群發

1、總體設計

要實現郵件群發,我們首先需要實現與SMTP伺服器串連,然後才能通過SMTP伺服器發送郵件,由於SMTP伺服器可能需要身份認證所以我們要編寫實用的郵件群發軟體還必須使其具有SMTP認證的功能。我們可以通過C++Builder中的TIdSMTP組件來實現與SMTP伺服器的認證、串連和郵件的發送。通過編寫代碼迴圈讀取郵件地址清單(Mail List)中的郵件地址並發送郵件從而實現群發。考慮到管理和擷取郵件地址的方便性,地址清單儲存的安全性以及基於該郵件地址清單的其他相關應用程式的開發我們可以採用Access2000資料庫來儲存郵件地址清單,利用C++Builder中的TADOTable組件我們可以使用ADO方式輕鬆的實現對Access2000資料庫的直接存取和各種操作。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.