問題:
--------------------------------------------------------------------------------------------------------------------
IIS版本: Microsoft-IIS/5.0
支援發送郵件組件:
JMail.SmtpMail (Dimac JMail 郵件收發) √ 4.4
代碼如下:
<%
Set jmail = Server.CreateObject("JMAIL.SMTPMail") '建立一個JMAIL對象
jmail.silent = true 'JMAIL不會拋出例外錯誤,返回的值為FALSE跟TRUE
jmail.logging = true '啟用使用日誌
jmail.Charset = "GB2312" '郵件文字的代碼為簡體中文
jmail.ContentType = "text/html" '郵件的格式為HTML的
jmail.ServerAddress = "smtp.163.com" '發送郵件的伺服器
jmail.AddRecipient "xxx@163.com" '郵件的收件者
jmail.SenderName = "SenderName" '郵件寄件者的姓名
jmail.Sender = "xxx@163.com" '郵件寄件者的郵件地址
jmail.Priority = 1 '郵件的緊急程式,1 為最快,5 為最慢, 3 為預設值
jmail.Subject = "Mail Subject" '郵件的標題
jmail.Body = "Mail Body" '郵件的內容
jmail.Execute() '執行郵件發送
jmail.Close '關閉郵件對象
response.write "ok"
%>
代碼能夠執行成功,但是不能接收到郵件?請問下是什麼問題?
---------------------------------------------------------------------------------------------------------------------
主要是smtp伺服器需要認證,如果是163的使用者的話,你的程式中加上使用者名稱和密碼認證即可。
下面的代碼引自Guest7(第七訪客)
///////////////////////////
'========================================================
'函數名:SendMail
'作 用:用Jmail組件發送郵件(需要驗證形式)
'說 明: Jmail4.3組件重新設計了其內部結構——使用
' Message對象代替原來的單一對象Jmail.smtpmail發送
' 郵件,有些方法需要身分識別驗證的(如163、yahoo等),
' 可以用下面的方法解決:
'參 數:MailtoAddress ----收信人地址
' MailtoName -----收信人姓名
' Subject -----主題
' MailBody -----信件內容
' FromName -----發信人姓名
' MailFrom -----發信人地址
' MailServer -----用來發郵件的SMTP伺服器位址
' Priority -----信件優先順序
' MailServerUserName -----登入使用者名稱
' MailServerPassWord -----登入密碼
' MailDomain -----網域名稱
'========================================================
function SendMail(MailtoAddress,MailtoName,Subject,MailBody,FromName,MailFrom,MailServer,Priority,MailServerUserName,MailServerPassWord,MailDomain)
on error resume next
Dim JMail
Set JMail=Server.CreateObject("JMail.Message")
if err then
SendMail= "<br/><li>沒有安裝JMail組件</li>"
err.clear
exit function
end if
JMail.Charset="gb2312" '郵件編碼
JMail.silent=true
JMail.ContentType = "text/html" '郵件內文格式
JMail.ServerAddress= MailServer '用來發送郵件的SMTP伺服器
'如果伺服器需要SMTP身分識別驗證則還需指定以下參數
JMail.MailServerUserName = MailServerUserName '登入使用者名稱
JMail.MailServerPassWord = MailServerPassWord '登入密碼
JMail.MailDomain = MailDomain '網域名稱(如果用“name@domain.com”這樣的使用者名稱登入時,請指明domain.com
JMail.AddRecipient MailtoAddress,MailtoName '收信人
JMail.Subject=Subject '主題
JMail.HMTLBody=MailBody '郵件內文(HTML格式)
JMail.Body=MailBody '郵件內文(純文字格式)
JMail.FromName=FromName '發信人姓名
JMail.From = MailFrom '發信人Email
JMail.Priority=Priority '郵件等級,1為加急,3為普通,5為低級
JMail.Send(MailServer)
SendMail =JMail.ErrorMessage
JMail.Close
Set JMail=nothing
End function
經測試利用以上代碼可以發送到多數免費郵箱,但在發到我的Yahoo郵箱時出現了錯誤,伺服器拒收郵件,不知是何故?