簡體   English   中英

來自CDO.Message發送方法的未知電子郵件代碼

[英]Unknown email code from CDO.Message send method

我正在嘗試通過vbscript發送電子郵件。 這是我的電子郵件代碼:我當然已經隱藏了電子郵件地址。 在我的實際代碼中,我使用的是有效的電子郵件地址。

Dim objCDO
Set objCDO = Server.CreateObject("CDO.Message") 
objCDO.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.oa.caiso.com" 
objCDO.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
objCDO.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
objCDO.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 
objCDO.Configuration.Fields.Update 
objCDO.To = "abcemail@devnull.com"
objCDO.From = Sender
objCDO.cc = ""
objCDO.bcc = ""
objCDO.Subject = txtSubject
objCDO.HTMLBody = Replace(sBody, Chr(10),"<br>")
On Error GoTo 0
On Error Resume Next
objCDO.Send
If Err.Number <> 0 Then 
    Response.Write "Just after the send command "
    Response.Write "Err.Number is " & Err.Number & "<br>"
    On Error GoTo 0
End If
set objCDO = nothing

運行此代碼時,我看到以下錯誤:

在發送命令Err.Number之后是-2147220978

現在,當我研究此錯誤號時,錯誤代碼-2147220978到處都沒有引用。實際上,對於編號-2147220978的Google搜索根本沒有返回任何結果。

您知道那個奇怪的錯誤代碼是什么意思嗎?

-2147220978 = 8004020E

從CDOSYSERR.h

//
// MessageId: CDO_E_SENDER_REJECTED
//
// MessageText:
//
// The server rejected the sender address. The server response was: %1
//
#define CDO_E_SENDER_REJECTED            0x8004020EL

解碼錯誤

-2147220978樣式編號是32位有符號整數,可通過計算器轉換為十六進制。

Windows錯誤(較小的數字)和COM HResults(通常,但有例外,以0x80040154中的8開頭)在WinError.h中定義,除了8007nnnn,在其中查找它包含的Window錯誤號。

通常,Windows錯誤小於65,535(0xFFFF)。 從0x80000001開始的錯誤是組件對象模型(COM)HResults。 以0xc0000001開頭的錯誤是NTStatus結果。

NTStatus.h中定義了NTStatus錯誤(通常但並非總是以0xC0000022開頭的C開頭)。

.h文件是最好的來源,因為它包含錯誤的符號名,它可以提供諸如錯誤源之類的線索。 FormatMessage不僅給出符號名稱的描述。

您可以通過下載Platform SDK(千兆字節) http://www.microsoft.com/zh-cn/download/details.aspx%3Fid%3D8279&sa=U&ei=w2IrULDDLsHFmAWbmIHoBg&ved=0CBwQFjAA&usg=AFQJCNHZn9-4f2N

如果您只想要這兩個文件,我會將它們放在skydrive上,這樣我就可以在任何地方引用它們。 https://skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121

注意Internet錯誤(12,000-12,999)是Windows錯誤,但在以上的wininet.h中已指定。

在其他.h文件中定義了錯誤。 但以上三者中有99%。

HResult和NTStatus代碼的結構

HResults中的最高有效位以及NTStatus中的兩個最高有效位被設置為錯誤。 因此,Hresults在錯誤時以8開始,而NTStatus在錯誤時以C開始。 接下來的14或15位將被保留,其中一些會指定功能-錯誤所在的區域。這是讀取十六進制時的第三個和第四個數字。 EG 0xnn07nnnn-HResult工具代碼7是Windows的正常錯誤(從COM程序返回-因此它作為HResult返回)。 功能代碼在Winerror.h中定義為HResults,在NTStatus.h中定義為NTStatus代碼。 他們是不同的。

解碼0x8003nnnn錯誤

具有設施代碼3的HResults表示HResult包含OLE結構化存儲錯誤(0x0至0xff)。 這些似乎不在Windows的頭文件中,並且代碼列表在本文的結尾。

解碼0x8004nnnn錯誤

具有設施代碼4的HResults表示HResult包含OLE錯誤(0x0至0x1ff),而其余范圍(0x200起)是特定於組件的錯誤,因此一個組件中的20e與另一個組件中的20e具有不同的含義。

這就是為什么對於0x80040200以上的錯誤,錯誤的來源特別重要的原因。

解碼0x8007nnnn錯誤

具有功能代碼7的HResults表示HResult包含Windows的錯誤代碼。 您必須查找Windows的錯誤代碼而不是HResult。

解碼0x80070002。 0x表示它是一個十六進制數,8表示錯誤,前7表示它是Windows錯誤,數字的其余部分2是實際的Windows錯誤。

要查找錯誤,我們需要十進制格式。 啟動計算器(開始-所有程序-附件-計算器),然后選擇查看菜單-科學,然后選擇查看菜單-十六進制。 輸入2。然后單擊“查看”菜單-“十進制”。 它會說2。

啟動命令提示符(開始-所有程序-附件-命令提示符)並鍵入

net helpmsg 2

它會說

The system cannot find the file specified.

或在winerror.h中查找

//
// MessageId: ERROR_FILE_NOT_FOUND
//
// MessageText:
//
// The system cannot find the file specified.
//
#define ERROR_FILE_NOT_FOUND             2L

Dos錯誤代碼(用於0x8003nnnn錯誤)

Dos錯誤代碼(用於0x8003nnnn錯誤)

Code    Message
01  Invalid function number
02  File not found
03  Path not found
04  Too many open files (no handles left)
05  Access denied
06  Invalid handle
07  Memory control blocks destroyed
08  Insufficient memory
09  Invalid memory block address
0A  Invalid environment
0B  Invalid format
0C  Invalid access mode (open mode is invalid)
0D  Invalid data
0E  Reserved
0F  Invalid drive specified
10  Attempt to remove current directory
11  Not same device
12  No more files
13  Attempt to write on a write-protected diskette
14  Unknown unit
15  Drive not ready
16  Unknown command
17  CRC error
18  Bad request structure length
19  Seek error
1A  Unknown media type
1B  Sector not found
1C  Printer out of paper
1D  Write fault
1E  Read fault
1F  General failure
20  Sharing violation
21  Lock violation
22  Invalid disk change
23  FCB unavailable
24  Sharing buffer overflow
25  Reserved
26  Unable to complete file operation (DOS 4.x)
27-31   Reserved
32  Network request not supported
33  Remote computer not listening
34  Duplicate name on network
35  Network name not found
36  Network busy
37  Network device no longer exists
38  NetBIOS command limit exceeded
39  Network adapter error
3A  Incorrect network response
3B  Unexpected network error
3C  Incompatible remote adapter
3D  Print queue full
3E  No space for print file
3F  Print file deleted
40  Network name deleted
41  Access denied
42  Network device type incorrect
43  Network name not found
44  Network name limit exceeded
45  NetBIOS session limit exceeded
46  Temporarily paused
47  Network request not accepted
48  Print or disk redirection is paused
49-4F   Reserved
50  File already exists
51  Reserved
52  Cannot make directory entry
53  Fail on INT 24
54  Too many redirections
55  Duplicate redirection
56  Invalid password
57  Invalid parameter
58  Network device fault
59  Function not supported by network (DOS 4.x)
5A  Required system component not installed (DOS 4.x)

設施代碼

NTStatus設施

Common status values    0x0
Debugger    0x1
Rpc_runtime 0x2
Rpc_stubs   0x3
Io_error_code   0x4
Various drivers 0x5-0xf
Ntwin32 0x7
Ntsspi  0x9
Terminal_server 0xa
Faciltiy_mui_error_code 0xb
Usb_error_code  0x10
Hid_error_code  0x11
Firewire_error_code 0x12
Cluster_error_code  0x13
Acpi_error_code 0x14
Sxs_error_code  0x15
Transaction 0x19
Commonlog   0x1a
Video   0x1b
Filter_manager  0x1c
Monitor 0x1d
Graphics_kernel 0x1e
Driver_framework    0x20
Fve_error_code  0x21
Fwp_error_code  0x22
Ndis_error_code 0x23
Hypervisor  0x35
Ipsec   0x36
Maximum_value   0x37

HResults設施

Null    0x0
Rpc 0x1
Dispatch    0x2
Storage 0x3
Itf 0x4
Win32   0x7
Windows 0x8
Sspi    0x9
Security    0x9
Control 0xa
Cert    0xb
Internet    0xc
Mediaserver 0xd
Msmq    0xe
Setupapi    0xf
Scard   0x10
Complus 0x11
Aaf 0x12
Urt 0x13
Acs 0x14
Dplay   0x15
Umi 0x16
Sxs 0x17
Windows_ce  0x18
Http    0x19
Usermode_commonlog  0x1a
Usermode_filter_manager 0x1f
Backgroundcopy  0x20
Configuration   0x21
State_management    0x22
Metadirectory   0x23
Windowsupdate   0x24
Directoryservice    0x25
Graphics    0x26
Shell   0x27
Tpm_services    0x28
Tpm_software    0x29
Pla 0x30
Fve 0x31
Fwp 0x32
Winrm   0x33
Ndis    0x34
Usermode_hypervisor 0x35
Cmi 0x36
Windows_defender    0x50

這是幫助頁面。

      Exchange Server 2003  

錯誤代碼發送反饋

::::::::
Windows 2000的CDO>參考>
(宣言)

錯誤代碼本節包含Windows 2000的Microsoft CDO使用的自定義錯誤代碼。所有這些值都可以在類型庫CdoErrorCodes模塊中用作常量。

錯誤值是32位值,其結構如下所示:

復印代碼3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 8 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + --- +-+-+ --------------------------- + ----------- -------------------- + | Sev | C | R | 設施| 代碼 + --- +-+-+ ----------------------- + ----------------- -------------- +

從左到右讀取此描述,嚴重性代碼Sev是以下值之一:

00-成功

01-信息性

10-警告

11-錯誤

其次是:

C —客戶代碼標志。

R —保留位。

便利性-便利性代碼。

代碼-設施的狀態碼。

錯誤名稱值備注
CDO_E_UNCAUGHT_EXCEPTION 0x80040201L異常%1在地址%2處生成

CDO_E_NOT_OPENED 0x80040202L尚未為該對象打開任何數據源。

CDO_E_UNSUPPORTED_DATASOURCE 0x80040203L對象不支持這種類型的數據源。

CDO_E_INVALID_PROPERTYNAME 0x80040204L該對象不支持所請求的屬性名稱或名稱空間。

CDO_E_PROP_UNSUPPORTED 0x80040205L該對象不支持所請求的屬性。

CDO_E_INACTIVE 0x80040206L該對象無效。 它可能已被刪除或尚未打開。

CDO_E_NO_SUPPORT_FOR_OBJECTS 0x80040207L對象不支持存儲對象的持久狀態信息。

CDO_E_NOT_AVAILABLE 0x80040208L雖然支持請求的屬性或功能,但當前或在此上下文中不可用。

CDO_E_NO_DEFAULT_DROP_DIR 0x80040209L尚未為此服務器配置默認放置目錄。

CDO_E_SMTP_SERVER_REQUIRED 0x8004020AL SMTP服務器名稱是必需的,在配置源中找不到。

CDO_E_NNTP_SERVER_REQUIRED 0x8004020BL NNTP服務器名稱是必需的,並且在配置源中找不到。

CDO_E_RECIPIENT_MISSING 0x8004020CL至少需要一個收件人,但找不到任何收件人。

CDO_E_FROM_MISSING 0x8004020DL至少需要“發件人”或“發件人”字段之一,但均未找到。

CDO_E_SENDER_REJECTED 0x8004020EL服務器拒絕了發件人地址。 服務器響應為:%1

CDO_E_RECIPIENTS_REJECTED 0x8004020FL服務器拒絕了一個或多個收件人地址。 服務器響應為:%1

CDO_E_NNTP_POST_FAILED 0x80040210L無法將消息發布到NNTP服務器。 傳輸錯誤代碼為%2。 服務器響應為%1

CDO_E_SMTP_SEND_FAILED 0x80040211L無法將郵件發送到SMTP服務器。 傳輸錯誤代碼為%2。 服務器響應為%1

CDO_E_CONNECTION_DROPPED 0x80040212L傳輸斷開了與服務器的連接。

CDO_E_FAILED_TO_CONNECT 0x80040213L傳輸無法連接到服務器。

CDO_E_INVALID_POST 0x80040214L主題,發件人和新聞組字段均為必填字段,但未找到一個或多個字段。

CDO_E_AUTHENTICATION_FAILURE 0x80040215L由於身份驗證失敗,服務器拒絕了登錄嘗試。 服務器響應為:%1

CDO_E_INVALID_CONTENT_TYPE 0x80040216L在此上下文中,內容類型無效。 例如,MHTML消息的根必須是HTML文檔。

CDO_E_LOGON_FAILURE 0x80040217L傳輸無法登錄到服務器。

CDO_E_HTTP_NOT_FOUND 0x80040218L找不到請求的資源。 服務器響應為:%1。

CDO_E_HTTP_FORBIDDEN 0x80040219L拒絕訪問所請求的資源。 服務器響應為:%1。

CDO_E_HTTP_FAILED 0x8004021AL HTTP請求失敗。 服務器響應為:%1。

CDO_E_MULTIPART_NO_DATA 0x8004021BL這是一個多部分身體部位。 除了其中包含的身體部位之外,它沒有其他內容。

CDO_E_INVALID_ENCODING_FOR_MULTIPART 0x8004021CL多部分主體部分必須編碼為7位,8位或二進制。

CDO_E_PROP_NOT_FOUND 0x8004021EL找不到請求的屬性。

CDO_E_INVALID_SEND_OPTION 0x80040220L“ SendUsing”配置值無效。

CDO_E_INVALID_POST_OPTION 0x80040221L“使用后”配置值無效。

CDO_E_NO_PICKUP_DIR 0x80040222L拾取目錄路徑是必需的,未指定。

CDO_E_NOT_ALL_DELETED 0x80040223L無法刪除一個或多個消息。

CDO_E_PROP_READONLY 0x80040227L該屬性是只讀的。

CDO_E_PROP_CANNOT_DELETE 0x80040228L無法刪除該屬性。

CDO_E_BAD_DATA 0x80040229L寫入對象的數據不一致或無效。

CDO_E_PROP_NONHEADER 0x8004022AL所請求的屬性不在郵件頭名稱空間中。

CDO_E_INVALID_CHARSET 0x8004022BL所請求的字符集未安裝在計算機上。

CDO_E_ADOSTREAM_NOT_BOUND 0x8004022CL尚未打開ADO流。

CDO_E_CONTENTPROPXML_NOT_FOUND 0x8004022DL缺少內容屬性。

CDO_E_CONTENTPROPXML_WRONG_CHARSET 0x8004022EL內容屬性XML必須使用UTF-8進行編碼。

CDO_E_CONTENTPROPXML_PARSE_FAILED 0x8004022FL無法解析內容屬性XML。

CDO_E_CONTENTPROPXML_CONVERT_FAILED 0x80040230L無法將屬性從XML轉換為請求的類型。

CDO_E_NO_DIRECTORIES_SPECIFIED 0x80040231L沒有指定用於解析的目錄。

CDO_E_DIRECTORIES_UNREACHABLE 0x80040232L無法針對一個或多個指定目錄進行解析。

CDO_E_BAD_SENDER 0x80040233L找不到發件人的郵箱。

CDO_E_SELF_BINDING 0x80040234L不允許綁定到自身。

CDO_E_ARGUMENT1 0x80044000L第一個參數無效。

CDO_E_ARGUMENT2 0x80044001L第二個參數無效。

CDO_E_ARGUMENT3 0x80044002L第三個參數無效。

CDO_E_ARGUMENT4 0x80044003L第四個參數無效。

CDO_E_ARGUMENT5 0x80044004L第五個參數無效。

CDO_E_NOT_FOUND 0x800CCE05L在此消息中找不到所請求的正文部分。

CDO_E_INVALID_ENCODING_TYPE 0x800CCE1DL內容編碼類型無效。

文檔反饋Microsoft重視您的反饋。 要對該主題進行評分並將有關此主題的反饋發送給文檔團隊,請單擊評分,然后單擊“發送反饋”。 有關支持問題的幫助,請參閱產品隨附的技術支持信息。 較差1 2 3 4 5優秀要通過電子郵件將您的反饋發送給Microsoft,請單擊此處:
©2005 Microsoft Corporation。 版權所有。

您很可能需要針對您的郵件服務器進行身份驗證。 您可以通過添加以下行來使用CDOSYS進行此操作。 您當然需要將sendusername和sendpassword值更改為有效帳戶。

objCDO.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 'basic (clear-text) authentication
objCDO.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") ="somemail@yourserver.com"
objCDO.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") ="yourpassword"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM