一(yī)般來說,如果要利用CDO對象來發送郵件,需要有一(yī)台開(kāi)放(fàng)的SMTP服務才能發送成功。由于目前反垃圾
郵件的原因,幾乎所有的SMTP服務器都要通過SMTP驗證才能往外(wài)發郵件,因此CDO對象變得無用武之地了。
那如果需要在程序中(zhōng)發郵件,該如何處理呢?我(wǒ)們可以用 OpenSmtp 這個組件來發,OpenSmtp 是sf.net 上一(yī)個
開(kāi)源的 .Net 組件,用C#語言編寫。下(xià)載 OpenSmtp 組件。
以下(xià)是用 OpenSmtp 組件發郵件的一(yī)個例子:
<%@ Page language="c#" %>
<script runat="server">
void Page_Load()
{
string MailServer = "mail.domain.com"; //您的smtp服務器的IP或域名
string MailUser = "user@domain.com"; //您的郵箱用戶名
string MailPass = "password"; //您的密碼
int MailPort = 25; //smtp服務器的端口,一(yī)般是 25
string MailFromName = "YourName";
//建立 smtp 對象
OpenSmtp.Mail.Smtp oSmtp = new OpenSmtp.Mail.Smtp(MailServer,MailUser,MailPass,MailPort);
//建立信息對象
OpenSmtp.Mail.MailMessage msg = new OpenSmtp.Mail.MailMessage();
//指定發信人
msg.From = new OpenSmtp.Mail.EmailAddress(MailUser,MailFromName );
//添加收件人
msg.AddRecipient("receiver@mail.com", OpenSmtp.Mail.AddressType.To);
//設置郵件正文,并指定格式爲 html 格式
msg.HtmlBody = "html mail body";
//設置郵件标題
msg.Subject = "mail subject";
//指定郵件正文的編碼
msg.Charset = "gb2312";
//發送郵件
oSmtp.SendMail(msg);
}
</script>