很多时候用JMail发送邮件一直出错,常见原因有:
1。发送邮件服务器地址写错。如果用 163邮箱来发送,服务器地址应当写成 smtp.163.com
2。很多发送邮件服务器需要验证邮箱登录名(例:1hujinjin1@163.com)和密码(xxxxxxx),如果这两样没提交,发送也会失败。
3。发件人邮箱地址和发送邮件服务器登录名不统一。
以下的代码已在asp中调试通过。已亲测可用
<%
Dim nReturnValue \'发送函数
nReturnValue = SendMail_JMail("smtp.qq.com", "1hujinjin1@163.com", "胡金金个人网站", "xxxxxxx@qq.com", "xxxxxxx", "1hujinjin1@163.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
%>