主题:求助,关于jmail!
lxch
[专家分:0] 发布于 2007-07-23 16:48:00
Set msg = Server.CreateObject("JMail.SMTPMail")
msg.silent = true
msg.Logging = true
msg.Charset = "gb2312"
msg.ContentType = "text/html"
msg.MailServerUserName = "****@rachem.com" '输入smtp服务器验证登陆名 (邮局中任何一个用户的Email地址)
msg.MailServerPassword = "****" '输入smtp服务器验证密码 (用户Email帐号对应的密码)
msg.FROM = "service@rachem.com" '发件人Email
msg.FromName = "aaaa" '发件人姓名
msg.AddRecipient request("email") '收件人Email
msg.Subject = "恭喜您成为我们网站的会员,来自aaaa " '信件主题
msg.Body = "您的密码为:"&request("pass1")&" ,您的用户名为:"&request("username")&"。aaa,欢迎您经常访问。请记住我们的地址:http://www.aaaa.com.cn" '正文
msg.Send ("mail.rachem.com") 'smtp服务器地址(企业邮局地址)
set msg = nothing
这个是我的代码,可是我不知道为什么,IE一直提示错误,提示如下:
此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示。
有关 HTTP 错误的详细信息,请参阅帮助。
请各位帮忙看一下吧,谢谢!
回复列表 (共10个回复)
沙发
wangsdong [专家分:21390] 发布于 2007-07-23 16:57:00
http://www.programfan.com/blog/blog.asp?author=wangsdong
我昨天发了一个调用jmail的函数,你试试
板凳
lxch [专家分:0] 发布于 2007-07-23 17:15:00
还是不行啊,一样的错误提示,又不说是哪里出错了,[em10],还有没有哪的办法啊?谢谢!
3 楼
wangsdong [专家分:21390] 发布于 2007-07-23 19:46:00
确定服务器上安装了jmail,邮件服务器,用户名,密码都正确?
4 楼
notbird [专家分:2800] 发布于 2007-07-24 01:32:00
Jmail有时并不能有效使用,建议使用Win2003自带的邮件组件CDO.Message
现给出函数和调用示例。此函数来处百度搜索,我已调试使用过。
'CDOSYS CDO.Message 邮件发送函数
'把邮件服务器pcfun.cn换成你自己的,在它上面的用户名qq和密码ggggggg及邮件箱帐号qq@pcfun.cn换成你自己的,strAppendix为附件在本地磁盘的路径。
sendCDOmail "pcfun.cn", "qq", "ggggggg", "xxx@21cn.com", "qq@pcfun.cn", "标题", "内容", ""
function sendCDOmail(SMTPServerName, userName, password, toMail, fromMail, strSubject, strBody, strAppendix)
Const cdoSendUsingMethod="http://schemas.microsoft.com/cdo/configuration/sendusing"
Const cdoSendUsingPort=2
Const cdoSMTPServer="http://schemas.microsoft.com/cdo/configuration/smtpserver"
Const cdoSMTPServerPort="http://schemas.microsoft.com/cdo/configuration/smtpserverport"
Const cdoSMTPConnectionTimeout="http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout"
Const cdoSMTPAuthenticate="http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"
Const cdoBasic=1
Const cdoSendUserName="http://schemas.microsoft.com/cdo/configuration/sendusername"
Const cdoSendPassword="http://schemas.microsoft.com/cdo/configuration/sendpassword"
Dim objConfig ' As CDO.Configuration
Dim objMessage ' As CDO.Message
Dim Fields ' As ADODB.Fields
Set objConfig = Server.CreateObject("CDO.Configuration")
Set Fields = objConfig.Fields
With Fields
.Item(cdoSendUsingMethod) = cdoSendUsingPort
.Item(cdoSMTPServer) = SMTPServerName '可用的外部邮件服务器域名
.Item(cdoSMTPServerPort) = 25
.Item(cdoSMTPConnectionTimeout) = 10
.Item(cdoSMTPAuthenticate) = cdoBasic
.Item(cdoSendUserName) = userName '邮箱的用户名
.Item(cdoSendPassword) = password '密码
.Update
End With
Set objMessage = Server.CreateObject("CDO.Message")
Set objMessage.Configuration = objConfig
With objMessage
.To = toMail '改成接收者的邮件地址
.From = fromMail '改成发送人的邮件地址
.Subject = strSubject '标题
.TextBody = strBody '正文
'.AddAttachment "C:\Scripts\Output.txt" '邮件附件
.Send
End With
Set Fields = Nothing
Set objMessage = Nothing
Set objConfig = Nothing
end function
5 楼
lxch [专家分:0] 发布于 2007-07-24 10:55:00
CDO.Message 的这个我试过了,不行啊,在倒数第四行的.Send 这个地方提示出错.至于JMAIL,我安装了之后,就可以运行了,可是我却没有收到任何的邮件!
6 楼
wangsdong [专家分:21390] 发布于 2007-07-24 12:22:00
那个函数有输出值,0表示发送失败,1表示发送成功,你将它的值输出来看看是否发送成功?
7 楼
notbird [专家分:2800] 发布于 2007-07-24 13:11:00
[quote]CDO.Message 的这个我试过了,不行啊,在倒数第四行的.Send 这个地方提示出错.至于JMAIL,我安装了之后,就可以运行了,可是我却没有收到任何的邮件![/quote]
可以这么说:
你没有安装好smtp服务器,或没有正确设置好
在cmd下使用 telnet mail.pcfun.cn 25 如果出现 220表明你的服务器配置好了(这里的mail.pcfun.cn用你的邮件服务器代替)
8 楼
lxch [专家分:0] 发布于 2007-07-24 13:24:00
[quote]那个函数有输出值,0表示发送失败,1表示发送成功,你将它的值输出来看看是否发送成功?[/quote]
输入的值是1,但是没有收到邮件啊.
9 楼
lxch [专家分:0] 发布于 2007-07-24 13:25:00
[quote]
在cmd下使用 telnet mail.pcfun.cn 25 如果出现 220表明你的服务器配置好了(这里的mail.pcfun.cn用你的邮件服务器代替)
[/quote]
运行的结果是220,但是还是.send的位置提示出错啊!
10 楼
lxch [专家分:0] 发布于 2007-07-24 13:39:00
谢谢各位的帮忙了,我用了另外的函数,测试成功.代码如下:
<%
Function Send_Email(smtpHost,smtpUser,smtpPass,mailTo,FromName,subject,content)
Set jmail = Server.CreateObject("JMAIL.Message")
jmail.silent = true
jmail.logging = true
jmail.Charset = "gb2312"
jmail.ContentType = "text/html"
jmail.AddRecipient mailTo
jmail.From = smtpUser
jmail.FromName = FromName
jmail.Subject = subject
jmail.Body = content
jmail.Priority = 1
jmail.MailServerUserName = smtpUser
jmail.MailServerPassword = smtpPass
jmail.Send(smtpHost)
jmail.Close()
response.write("邮件发送成功")
End Function
%>
其中Send_Email表示自定义的函数名称
参数smtpHost表示邮件服务器地址
参数smtpUser表示发信验证所需的登录帐户
参数smtpPass表示发信验证所需的登录密码
参数mailTo表示邮件收件人的E-Mail地址
参数FromName表示邮件发件人的名称
而参数subject和content则分别表示邮件的标题和正文内容
通过如下方法可应用该函数:
Call Send_EMail("smtp.126.com","dw8asp@126.com","******","cnbruce@msn.com","cnbruce","标题","邮件正文内容")
或者有个人邮局的可使用
Call Send_EMail("mail.cnbruce.com","root@cnbruce.com","******","cnbruce@msn.com","cnbruce","标题","邮件正文内容")
调试地址: http://www.dw8.cn/2006/mail
这是从另外的网站上找到的.
我来回复