在新發行的ASP
NET
版本中
微軟不再建議使用System
Web
Mail命名空間而代之以新的System
Net
Mail命名空間
在這個新庫中引入了許多新特征
但是在發送郵件的方式方面也相應地帶入了一些小錯誤
一 發送郵件 在詳細討論這些小錯誤之前
讓我們先看一段示例代碼(我們假定你已經在文件開始添加了
using System
Net
Mail
)
MailMessage msg = new MailMessage();
msg
From = new MailAddress(
Person
s Name
);
msg
To
Add(new MailAddress(
de
Addressee
s Name
);
msg
To
Add(new MailAddress(
des
Addressee
s Name
);
msg
Subject =
Message Subject
;
msg
Body =
Mail body content
;
msg
IsBodyHtml = true;
msg
Priority = MailPriority
High;
SmtpClient c = new SmtpClient(
m
);
c
Send(msg);
上面的代碼與以前版本中的實現差不太多
僅是在指定消息時作了一些小的改動
不必自己來構建一個地址
你完全可以讓系統為你代勞
如果你指定一個電子郵件地址和一個名字
它將自動地在消息中顯示如下內容
Person
s Name
<de>
這正是一個電子郵件地址的
正確
格式
當然
你可以進一步把多個地址添加到To
CC和BCC集合中
其方式與上面完全相同
通過這種編程方式來實現發送大量消息要比分別發送每個消息要容易得多了
只需要把多個地址添加到BCC屬性即可實現郵件的群發
二 存在的問題 現在
我們來分析一下其中存在的小錯誤
如前面所提及
這個新的命名空間中帶有一些小錯誤
第一個是
當你發送一封電子郵件時
郵件的頭部信息全部是以小寫字母形式添加的
然而
在針對SMTP郵件RFC的規范中並沒有指定郵件頭部應該怎樣大寫
但是
許多垃圾郵件過濾程序卻限制了頭部沒有正確大寫的電子郵件消息
另一個錯誤與優先權設置有關系
通過優先權設置
用戶可以指定一個消息在郵件客戶端的重要程度
由於郵件頭部的這種格式化方式(全部轉化為小寫)
所以
我的郵件程序(Eudora)無法識別相應的優先權標志
因而也就不會專門標記出此郵件的重要程度
盡管這看上去有些瑣碎
但是轉換到新版本的System
Web
Mail以後這看上去並沒有明顯理由
所以
我還會繼續探討這個問題
如果實在找不到一個好的補救辦法
那麼我只要回到以前的System
Web
Mail以更有效了解決上面的警告問題
From:http://tw.wingwit.com/Article/program/net/201311/13041.html