如果說世界上有原廠的東西做出來還不好用,那一定說的是 Microsoft 。
Microsoft .Net 原廠的 System.Web.Mail 實在太遜了,丟開 SMTP 沒有認證使用者的功能就算了,連寄附加檔案都有問題! 隨便指定個檔案當附加檔,程式就直接中斷掉了。
其實自己寫一個 SMTP 的程式也不難,只是輪子不用再重造,目前 sourceforge 內有一個 OpenSMTP .Net 的專案,完全 OpenSource ,我在 VB.Net 測試除了附加檔案的檔名中文檔名會消失之外,沒有任何的問題。
官方網址:
http://sourceforge.net/projects/opensmtp-net/
VB.Net 的使用範列: (修改自官方說明的 C# 範例)
Imports OpenSmtp.Mail
‘在 Visual Studio 記得要引用「專案->加入參考->opensmtp.dll」
Dim from As New EmailAddress(“neo@xxx.com.tw”, “Neo”)
Dim sto As New EmailAddress(“neo@yyy.com.tw”, “XYZ”)
Dim msg As New OpenSmtp.Mail.MailMessage(from, sto)
msg.Subject = “測試 OpenSmtp .Net SMTP component”
msg.Body = “Neo’s BLOG 測試”
msg.Charset = “big5”
‘這個很重要,一定要設成 big5 或 UTF-8 才能正常顯示中文
msg.AddAttachment(“c:\reply\test.gif”)
Dim Smtp As New Smtp(“www.xxx.com.tw”, 25)
Smtp.Username = “neo” ‘有支援 SMTP 認證
Smtp.Password = “xyz”
Smtp.SendMail(msg)
另外有一個是屬於商業級的產品,但是免費版本該有的都有了,似乎沒有使用期限限制,有興趣的人可以試試。
官方網站:
http://www.quiksoft.com/freesmtp/
下載網址:
http://www.quiksoftcorp.com/download/freesmtpsetup.exe
4 comments On 免費的 .Net Email 元件
據我所知~
System.Web.Mail加上下3行就可認證了
MObj.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/smtpauthenticate“, “1”)
MObj.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendusername“, “youruesername”)
MObj.Fields.Add(“http://schemas.microsoft.com/cdo/configuration/sendpassword“, “yourpassword”)
對岸的朋友有修改原始碼解決中文附檔名的問題
http://www.cnblogs.com/bestcomy/archive/2005/01/21/95512.html
剛剛試了之後發現,對岸朋友的修改在.net 2.0不適用。
如果用.net 2.0,直接用System.Net.Mail的SmtpClient與MailMessage,設定message.BodyEncoding = System.Text.Encoding.UTF8則完全沒有中文問題。
请问如何设置Opensmtp的紧急程度呢,我发成功了,要很久才收得到
Comments are closed.