2010年12月1日 星期三

在 WINDOWS SERVER 2008 下以 CDO.Message 寄送 E-MAIL 會遇到的狀況

資料來源:http://vfp.sunyear.com.tw/viewtopic.php?p=19354
在 WINDOWS SERVER 2003 以下用 CDO.Message 寄送 E-MAIL 都正常,但 WINDOWS SERVER 2008 (可能也包括 VISTA) 就問題可多了

1.WINDOWS SERVER 2008 似乎沒有 SMPT Service,但有 SMPT 伺服器,它不是預設安裝的選項,所以要先手動安裝後重啟電腦。

2.在 WINDOWS SERVER 2008 下,以 Send 方法程序傳送郵件時,可能會出現下列錯誤:
1. OLE IDISPATCH EXCEPTION CODE 0 FROM CDO.MESSAGE.1: "SENDUSING" (傳送使用) 設定值無效。
2. 雖然 Send 方法程序執行正常,但郵件寄不出去。


所以,在 WINDOWS SERVER 2008 之前,以下列方式宣告 CDO.Message 後就可以了

M_oMessage = CreateObject("CDO.Message")

但現在要這麼做

M_oCDOConf = Createobject("CDO.Configuration")
WITH M_oCDOConf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing").Value = 2
IF ISNULL(.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value)
* 指定合法的郵件伺服器名稱 (自行指定),我想 Hinet 應該不會隨便就倒吧
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value = "msa.hinet.net"
ENDIF
.Update
ENDWITH
M_oMessage = CreateObject("CDO.Message")
M_oMessage.Configuration = M_oCDOConf


等到 CDO.Message 使用完畢要釋放時,執行如下

STORE .NULL. TO M_oMessage, M_oCDOConf
RELEASE M_oMessage, M_oCDOConf

沒有留言: