1.防火墙阻止了网络通讯或网络故障
2.杀毒软件限制
3.jmail组件权限不够
4.邮件服务器故障
以下是引用片段:
这个过程就是ASP程序代码调用了JMAIL组件,把要发送的邮件的各种信息通过JMAIL组件发给了MAIL SERVER(邮件服务器,或者说是邮件服务程序,如MDeamon,IMAIL,WinWebMail等),真正向你的目的地发送邮件的是MAIL SERVER.
通常我们遇到的错误是:’The message was undeliverable. All servers failed to receive the message ’,这其实是JMAIL返回的错误,并不是ASP代码产生的,根本原因是MAIL SERVER拒绝了JMAIL的请求.
究其原因,是那些服务器不提供SMTP服务或者没有开启smtp服务或是在服务器端开启了’禁止邮件中继服务’选项,也就是说不在其允许的IP段或指定范围内的空间里的程序是无法使用其SMTP服务的,最终导致’8000ffff’错误发生。 服务器端需要身份验证时,必须严格填写发件人地址,帐户和密码,以下为邮件服务器需要身份验证时的jmail发送邮件的参考代码:dim mail
set mail=CreateObject("jmail.Message")
mail.Charset ="gb2312"
mail.ContentType = "text/html"
mail.From = "mts@0e2.net" '发件人真实邮件地址
mail.FromName = "密陀僧" '发件人名称
mail.AddRecipient "admin@0e2.net" '收件人地址
mail.MailServerUserName = "mts@0e2.net" '发件人帐号
mail.MailServerPassWord = "123456" '密码
mail.subject="test"
mail.body= "test"
On Error Resume Next
mail.Send("mail.0e2.net")
mail.close()
set mail=nothing
err.clear
检查了JMAIL组件权限,发现没的问题。
按照惯例来检查。JMAIL组件发送邮件需要使用25端口.
查服务器防火墙 发现禁止25
打开。
也有可能在TCP/IP策略里禁止25端口的,请注意
补充部分:
导致这个问题的可能性还有以下几点。
收信邮箱填写错误,这个主要是在群发时候发现比较麻烦。
可以加个容错语句在里面就解决。
On Error Resume Next
还有可能就是使用的信箱问题。若以上两点都没什么问题,最好更改下发信邮箱
SMTP服务器测试下看,能否解决。
先关闭防火墙,问题依旧
再尝试关闭防病毒系统Mcafee VirusScan Enterprise V8.0i,这次终于正常了,但关闭防病毒系统也不是个办法啊。
继续排除问题,在访问保护中发现“禁止大量发送邮件的蠕虫病毒发送邮件”这一项,测试确定是因为这个端口阻拦在作怪。
解决方法:
控制台→访问保护→禁止大量发送邮件的蠕虫病毒发送邮件→已排除进程→加入w3wp.exe搞定
当然,以上只是一个样例,并非所有问题这是因此而起。
你可以查看是否是防火墙或防病毒或权限原因,如果不是那就比较麻烦了。
我前连天也遇到这个问题,03服务器明明安装了jmail发送组件,但就是无法发送。后来发现这个问题:有的2003服务器的iis下默认是没有安装smtp服务的(就是xp下打开iis后有个默认 SMTP 虚拟服务器),若你的iis下也没有这个安装这个服务,可以去下载个对应版本的iis安装包,然后从添加删除程序里将这个组件安装一遍即可。(若还是不能发送,给jmail安装目录everyone读取权限试试看,另外要保证防火墙之类的不要屏蔽了这个服务)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)