Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> 用Jmail組件發郵件錯誤的解決辦法

用Jmail組件發郵件錯誤的解決辦法

日期:2017/2/8 10:30:28      編輯:關於服務器

      我所負責的網站服務器沒有防火牆的保護,經常被黑客入侵,只好讓一個做網管的朋友幫我在服務上做一些權限設置,沒想到做完權限設置後,網站無法用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 =  "[email protected]"       '發送者郵箱
JMail.Subject = "測試發郵件"
JMail.AddRecipient "[email protected]"   '接收者郵箱
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

Copyright © Windows教程網 All Rights Reserved