很多时候用JMail发送邮件一直出错,常见原因有:
1。发送邮件服务器地址写错。如果用 163邮箱来发送,服务器地址应当写成 smtp.163.com
2。很多发送邮件服务器需要验证邮箱登录名(例:
[email protected])和密码(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
%
>