很多時候用JMail發送郵件一直出錯,常見原因有:
1。發送郵件伺服器地址寫錯。如果用 163郵箱來發送,伺服器位址應當寫成 smtp.163.com
2。很多發送郵件伺服器需要驗證郵箱登入名稱(例:laifangsong@163.com)和密碼(123456),如果這兩樣沒提交,發送也會失敗。
3。寄件者郵箱地址和發送郵件伺服器登入名稱不統一。
以下的代碼已在asp中調試通過。
<%
Dim nReturnValue '發送函數
nReturnValue = SendMail_JMail("mail.qcmw.com", "laifangsong#qcmw.com", "傾城wap自動建站系統", "laifangsong#qcmw.com", "#123456#", "laifangsong#126.com", "註冊成功提示", "您在我們網站上註冊成功!")
Select Case nReturnValue
Case 0
Response.Write "郵件發送成功!"
Case 1
Response.Write "建立JMail組件失敗!"
Case 2
Response.Write "郵件發送失敗!"
End Select
'JMail發送郵件(4.4)
'組件下載:http://www.52z.com/Down/3525.html
'參數:發送郵件SMTP伺服器, 寄件者郵箱地址, 寄件者姓名, 發送郵件伺服器登入名稱, 發送郵件伺服器登入密碼, 接收人郵件地址, 郵件標題, 郵件內容
Function SendMail_JMail(s_SMTPServer, s_FromMail, s_FromName, s_MailServerUserName, s_MailServerPassword, s_ToEmail, s_Subject, s_Body)
On Error Resume Next
Set jmail = Server.CreateObject("JMAIL.Message") '建立發送郵件的對象
If Err.Number <> 0 Then
SendMail_JMail = 1
Exit Function
End If
jmail.silent = True '屏蔽例外錯誤,返回FALSE跟TRUE兩值
jmail.logging = False '啟用郵件日誌
jmail.Charset = "GB2312" '郵件的文字編碼為中文
jmail.ISOEncodeHeaders = False '防止郵件標題亂碼
jmail.ContentType = "text/html" '郵件的格式為HTML格式
jmail.AddRecipient s_ToEmail '郵件收件者的地址
jmail.From = s_FromMail '寄件者的E-MAIL地址
jmail.FromName = s_FromName '寄件者姓名
jmail.MailServerUserName = s_MailServerUserName '登入郵件伺服器所需的使用者名稱
jmail.MailServerPassword = s_MailServerPassword '登入郵件伺服器所需的密碼
jmail.Subject = s_Subject '郵件的標題
jmail.Body = s_Body '郵件的內容
jmail.Priority = 1 '郵件的緊急程式,1 為最快,5 為最慢, 3 為預設值
jmail.Send(s_SMTPServer) '執行郵件發送(通過郵件伺服器地址)
jmail.Close() '關閉對象
If jmail.ErrorCode <> 0 Then
SendMail_JMail = 2
Else
SendMail_JMail = 0
End If
End Function
'IIS中SMTP郵件伺服器發送組件
Function SendMail_IISSMTP(s_FromMail, s_ToEmail, s_Subject, s_Body)
Set cdomail = Server.CreateObject("CDONTS.NewMail") '建立郵件對象
cdomail.Subject = s_Subject '郵件標題
cdomail.From = s_FromMail '寄件者的地址
cdomail.To = s_ToEmail '收件者的地址
cdomail.Body = s_Body '郵件的內容
cdomail.Send '執行發送
End Function
%>