电脑软硬件应用网
当前位置: 电脑软硬件应用网 > 电脑学院 > 服务器技术 > 正文
用Jmail组件发邮件错误的解决办法
用Jmail组件发邮件错误的解决办法
2007-6-27 9:02:55  文/繁星   出处:繁星点点   

      我所负责的网站服务器没有防火墙的保护,经常被黑客入侵,只好让一个做网管的朋友帮我在服务上做一些权限设置,没想到做完权限设置后,网站无法用Jmail组件发邮件了,每次都提示:

  Server 对象 错误 'ASP 0178 : 80070005'
  Server.CreateObject 访问错误
  ../sendmail.asp,行 3

  检查权限时,对 Server.CreateObject 的调用失败。拒绝对此对象的访问。
 
    查看第3行的代码是Set JMail = Server.CreateObject("JMail.SMTPMail") ,这个问题让我头疼了好久,上google、csdn查了无数次,都没有找到解决的方法,后来由于工作忙,干脆把它仍到一边不管了,一放就是大半年。
 
     近来迫于工作需要,没有自动发邮件功能真的很不方便,网站上收到有很多提交的表单,想立即发一封通知邮件到自己邮箱,于是又把这个问题拿出来查,把jmail组件卸掉又重装,装好后,测试发邮件,不成功,用阿江探针查询,显示 Jmail组件没开启,在网上搜了一阵,无意中在一个网站上找到一个答案说是没有给IIS帐号开放对 dll 文件的读写权限,右击安装路径下的 jmail.dll 文件,选属性,把 ISUR_xxx 和 IWAM_xxx 两个帐号加进去,给予写入权限,确定。测试,发现邮件能发了,可是速度很慢,还好,成功了一半。

     我的服务器是双线出口的,有一个内网IP,把外网IP换成内网IP试试,找到JMail.ServerAddress = "xxx.xxx.xxx.xxx" 这句代码,换成内网IP,测试,成功了,1秒种就发出去了,至此这个问题解决了。
 
  总结:

  遇到Jmail组件发邮件的问题,按以下几点逐个查找。

  1、看服务器上的smtp服务是否已启动。

  2、安装好jmail后,给IIS用户对 jmail.dll文件的写权限。

  3、用阿江探针,看Jmail组件是否已成功开启。

  4、用正确的邮件发送代码测试。
 
  附邮件发送测试代码:
 dim JMail
on error resume next
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "xxx.xxx.xxx.xxx"  '你服务器的IP或域名
JMail.LazySend = true
JMail.Charset = mcharset
JMail.ContentType = "text/html"
JMail.Sender =  "xxx@xxx.com"       '发送者邮箱
JMail.Subject = "测试发邮件"
JMail.AddRecipient "xxx@xxx.com"   '接收者邮箱
JMail.Body = "测试邮件"
JMail.Priority = 3
JMail.AddHeader "Originating-IP", Request.ServerVariables("REMOTE_ADDR")
JMail.Execute
JMail.close
set JMail=nothing
if err.number<>0 then
response.write err.description
err.clear
else
response.write  "发送成功"
end if

  • 上一篇文章:

  • 下一篇文章:
  • 最新热点 最新推荐 相关文章
    多图详解苹果“雪豹”服务器系统安装…
    支招:如何搭建九层高的服务器机架?
    IBM System x3200M2服务器常见问题解…
    IBM刀片服务器搭建理想动态基础架构
    Windows服务器组件安全设置策略
    配置WSUS服务器客户端计算机进行自动…
    微软WSUS服务器 3.0安装配置详解
    WSUS服务器常见故障
    Serv-U8.0添加匿名用户的技巧
    Serv-U服务器中文乱码问题的解决
    关于45IT | About 45IT | 联系方式 | 版权声明 | 网站导航 |

    Copyright © 2003-2011 45IT. All Rights Reserved 浙ICP备09049068号