[Tech].NetMail驗證寄信

Date: 2007-12-20

收藏此篇至Furl | 收藏此篇至del.icio.us


由於秘書室要求「來信指教」在使用者有留下email的時候,系統要自動回覆一封mail告知會儘快處理其問題,所以就必須再修改程式碼。
這時候就出現一個問題了,因為來信指教所寄出的對象是校內各單位,所以沒有驗證上的問題。
但使用者所留下的email就不見得是校內的郵件帳號了,如果MailServer沒有開啟【Relay】功能,在寄時的時候就會接到該server所丟出的SmtpException,內容是「5.7.1 Relaying not allowed: xxx@xxx.com
要解決這個問題,最簡單的方法,就是在程式直接assign一組帳號密碼給server,讓server驗證無誤後就可寄出該信件。

使用語法:ASP.NET VB (2.0)
MAIL Server:Sun ONE Messaging v6.0

((聽說在 Exchange Server 上也OK))



Dim ReceiverAddr As String = "yen@abc.com"
Dim smc As New SmtpClient(Host, Port)
With smc
   '若Server有使用SSL就為true
   .EnableSsl = False
   'assign帳號密碼
   .Credentials = New NetworkCredential("UserName", "PWD")
End With
Dim _from As MailAddress = New MailAddress(ReceiverAddr)
Dim _to As MailAddress = New MailAddress(ReceiverAddr)
Dim MailMsg As New MailMessage(_from, _to)
MailMsg.Subject = "Merry Xmas"
smc.Send(mMsg)



相關參考資源
MSDN Forums

Labels:

 

2008 © Yen. All Rights Reserved.