Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

JMail 寄信失敗「Server.CreateObject 存取被拒」完整排查與解決實錄

編輯:關於伺服器

伺服器權限調整後,JMail 元件寄信報錯 ASP 0178 : 80070005,Server.CreateObject("JMail.SMTPMail") 存取被拒。經半年多嘗試,最終依循四步驟成功修復:

排查四步驟

  1. 確認 SMTP 服務已啟動(服務管理員中檢查 Simple Mail Transfer Protocol)。
  2. 授予 IIS 帳號對 jmail.dll 寫入權限:
    右鍵 jmail.dll → 內容 → 安全性 → 新增 IUSR_機器名、IWAM_機器名 → 允許「寫入」。
  3. 用阿江探針驗證元件是否啟用,若顯示未開啟,重新註冊:
    regsvr32 jmail.dll
  4. 檢查寄信程式碼與 SMTP 位址:
    若伺服器雙網卡(內/外網 IP),JMail.ServerAddress 必須填內網 IP,外網 IP 會導致連線緩慢或失敗。

測試程式碼範本

<%
Dim JMail
On Error Resume Next
Set JMail = Server.CreateObject("JMail.SMTPMail")
JMail.ServerAddress = "10.x.x.x"  ' 內網 IP
JMail.LazySend = True
JMail.Charset = "UTF-8"
JMail.ContentType = "text/html"
JMail.Sender = "sender@domain.com"
JMail.Subject = "測試寄信"
JMail.AddRecipient "receiver@domain.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
%>

心得總結

  • 權限鎖定後,DLL 檔案層級權限常被忽略。
  • 多網卡環境SMTP 綁定 IP 選擇關鍵,內網 IP 速度快且穩定。
  • 阿江探針是快速驗證 COM 元件啟用狀態的好工具。
Copyright © Windows教程網 All Rights Reserved