說明 Outlook 2002 中供開發人員使用的電子郵件安全性功能

文章翻譯 文章翻譯
文章編號: 290500 - 檢視此文章適用的產品。
本文曾發行於 CHT290500
全部展開 | 全部摺疊

在此頁中

如需本文中的 Microsoft Outlook 98 版本,請參閱 262700

如需本文中的 Microsoft Outlook 2000 版本,請參閱 262701

結論

本文摘要說明開發人員需要瞭解的 Outlook 2002 電子郵件安全性功能,以及這些功能會如何影響自訂解決方案。

重要 本文將告訴您 Outlook 2002、Outlook 2002 Service Pack 1 及 Outlook 2002 Service Pack 2 中的安全性功能。Outlook 2002 Service Pack 3 新增了額外的功能。 如需有關這些變更的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
838871 說明 Outlook 2002 Service Pack 3 (SP3) 中開發人員相關的安全性變更

其他相關資訊

概觀

重要 除了本文中的資訊以外,您也應該熟悉一般的 Outlook 2002 電子郵件安全性功能。您可以從 [說明] 中查看有關 Outlook 電子郵件安全性功能的資訊。請在 [說明] 功能表上,按一下 [Microsoft Outlook 說明]。在內容中,按一下 [安全性與加密]。 如需有關安全性功能如何影響使用者的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
290498 OL2002:附加或自訂解決方案會造成警告出現
重要 本文將告訴您,關於程式介面上不同限制的 Outlook 2002 預設行為。如果您希望避免這些限制,系統管理員可以設定用戶端電腦,讓這些電腦不會包含所有這些限制。身為開發人員,您需要熟悉適用於這些安全性功能的系統管理選項。 如需有關如何覆寫這些限制的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
290499 OL2002:關於電子郵件安全性功能的開發者資訊
Outlook 2002 包含的安全性功能,與先前發行的 Microsoft Outlook 98 和 Microsoft Outlook 2000 電子郵件安全性更新屬於相同的類型。這些功能提供 Outlook 用以防範惡意電子郵件的額外保護層級,但是對於使用 Outlook 隨附的開發人員功能,以及其他訊息技術或應用程式發展介面 (API) 所建置的解決方案,可能會造成不良的影響。在某些情況下,解決方案可能完全沒有作用;在其他情況下,解決方案可能會產生警告訊息,在您嘗試執行您的解決方案時加以中斷。

這些安全性功能會對下列方面變更 Outlook 及一般訊息功能:
  • 一般附件方式
  • Outlook 物件模型
  • Collaboration Data Objects (CDO) 1.21s 物件模型
  • Simple Messaging Application Programming Interface,或 Simple MAPI
  • 其他與安全性相關的 Outlook 方面,例如內嵌於 HTML 郵件中的程式碼

Outlook 物件模型安全性功能

附件

無法在 Outlook 物件模型中存取屬於層級 1 或具有「不安全」副檔名的附件,特別是:
  • 物件模型中的 Attachments 集合不知有不安全的附件。
  • 如果您嘗試以程式設計方式傳送有這類附件的郵件,郵件不會傳送出去。如果程式是以 C 或 C++ 程式語言撰寫的,您會收到 MAPI_E_CANCELLED 傳回碼。
  • 如果您嘗試使用 Outlook 物件模型開啟「不安全」的檔案系統物件 (或 freedoc 檔案),就會收到 C 或 C++ 程式語言的 E_FAIL 傳回碼。在舊版的 Outlook 中,您可以使用 Outlook 物件模型中的 Display 方法開啟「不安全」的檔案系統物件。

Item.Send

當您執行使用 Outlook 物件模型的程式以呼叫 Send 方法時,會收到警告訊息。這個警告訊息指出某個程式嘗試以您的名義傳送郵件,並且會詢問是否允許傳送該郵件。警告訊息包含 [是][否] 按鈕,不過,警告訊息出現五秒鐘之後,您才能使用 [是] 按鈕。如果您按一下 [否],就可以立即關閉警告訊息。當您按一下 [否] 時,Send 方法會傳回 C 或 C++ 程式語言的 E_FAIL 錯誤。

存取通訊錄和收件者

如果程式嘗試使用 Outlook 物件模型參考任何類型的收件者資訊,就會出現對話方塊,要求您確認對此資訊的存取。收到此對話方塊之後,您可以允許最多十分鐘存取「通訊錄」或收件者資訊。這樣就能使如行動裝置同步處理等功能得以完成。如果您決定不允許存取「通訊錄」或收件者資訊,就會收到所有這些訊息的 C 或 C++ 程式語言的 E_FAIL 傳回碼。

當解決方案嘗試以程式設計方式存取下列 Outlook 物件模型的功能時,您會收到確認對話方塊:
  • AddressEntries 集合或任何 AddressEntry 物件。
  • Recipients 集合或任何 Recipient 物件。
  • ContactItem 物件的下列屬性:
    Email1.Address
    Email1.AddressType
    Email1.DisplayName
    Email1.EntryID
    Email2.Address
    Email2.AddressType
    Email2.DisplayName
    Email2.EntryID
    Email3.Address
    Email3.AddressType
    Email3.DisplayName
    Email3.EntryID
    NetMeetingAlias
    ReferredBy
  • MailItem 物件的下列屬性:
    SentOnBehalfOfName
    SenderName
    ReceivedByName
    ReceivedOnBehalfOfName
    ReplyRecipientNames
    To
    Cc
    Bcc
  • AppointmentItem 物件的下列屬性:
    Organizer
    RequiredAttendees
    OptionalAttendees
    Resources
    NetMeetingOrganizerAlias
  • TaskItem 物件的下列屬性:
    ContactNames
    Contacts
    Delegator
    Owner
    StatusUpdateRecipients
    StatusOnCompletionRecipients
  • DistListItem 物件的 GetMember 方法。
  • JournalItem 物件的 ContactNames 屬性。
  • MeetingItem 物件的 SenderName 屬性。
  • PostItem 物件的 SenderName 屬性。
  • Namespace 物件的 GetRecipientFromID 屬性。
  • Action 物件的 Execute 方法。
  • UserProperty 物件的 Formula 屬性。

Item.SaveAs

當您使用 SaveAs 方法將項目儲存至檔案系統時,會收到「通訊錄」的警告訊息。這個訊息包括所有類型的項目 (無論這些項目是否具有附件或主動式內容)。這項變更已經實行,如此,他人便無法以程式設計方式將項目儲存為檔案,再剖析檔案以擷取電子郵件地址。

傳送 CommandBar 按鈕

您不再可以使用 Execute 方法,以程式設計方式按一下 Outlook 工具列上的 [傳送] 按鈕。雖然這通常不是用於 Outlook 解決方案,但為了防止惡意用途,這項變更已經實行。您會收到有關所有這些訊息的 C 或 C++ 程式語言的 E_FAIL 傳回碼。

SendKeys

Outlook 不允許使用 Microsoft Visual Basic 或 Microsoft Visual Basic for Applications 的 SendKeys 命令,來存取某些對話方塊。這可以防止惡意程式自動關閉警告訊息並規避新的安全性功能。

未發佈表單中的 VBScript 不再執行

當您建立自訂的 Outlook 表單時,可以選擇在項目內直接嵌入 Visual Basic Scripting Edition (VBScript)。如果其他使用者無法存取已發佈的表單,您可以使用這種做法。這種類型的表單稱為「一次性」表單。 如需有關一次性表單的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
290657 Description of form definitions and one-off forms in Outlook 2002
當您在沒有套用 Outlook 電子郵件安全性更新的 Outlook 版本中開啟這些其中一個項目時,Outlook 會顯示安全性警告訊息,詢問您要啟用或停用表單中的程式碼。在 Outlook 2002 中,程式碼是停用的,您也無法加以啟動。

CDO 1.21s 安全性功能

CDO 1.21 物件模型已經變更以反映對 Outlook 物件模型和 Simple MAPI 的變更。CDO 的版本號碼已經更新為 1.21s,以反映這些安全性功能。 如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
295302 Summary of Collaboration Data Objects (CDO) 1.21s e-mail security features in Outlook 2002
如需有關 CDO 物件模型的詳細資訊,請參閱 Microsoft 網站的下列文件:
http://msdn2.microsoft.com/en-us/library/ms527038.aspx

Simple MAPI 安全性功能

當 Outlook 在電腦上安裝做為預設的 Simple MAPI 用戶端時,Outlook 會處理使用 Simple MAPI 呼叫產生的要求。因此,當您安裝 Outlook 2002 時,Simple MAPI 呼叫就會由 Outlook 處理,且這些呼叫會提供與 Outlook 物件模型相同的防護層級。根據預設,如果您使用許多 Simple MAPI 函數,就會收到警告訊息,指出某個程式嘗試以您的名義存取收件者資訊或傳送郵件。

下列清單說明 Outlook 如何回應 Simple MAPI 呼叫。
摺疊此表格展開此表格
Simple MAPI 呼叫由 Outlook 處理時的行為
MAPIAddressOK
MAPIDeleteMailOK
MAPIDetailsOK
MAPIFindNextOK
MAPIFreeBufferOK
MAPILogoffOK
MAPILogonOK
MAPIReadMail提示
MAPIResolveName提示
MAPISaveMailOK
MAPISendDocumentsOK
MAPISendMail若使用 MAPI_DIALOG 引數則 OK,否則會出現提示
如需有關 Simple MAPI 呼叫的詳細資訊,請參閱 Microsoft 網站的下列文件:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mapi/html/9a99b366-44e6-4665-9308-2eddf57e512c.asp

Office 應用程式重設為高安全性

為了協助防範可能出現在 Microsoft Office 文件中的有害巨集病毒,Office XP 預設會將程式設定為處於「高安全性」模式。這包括支援 Visual Basic for Applications 的所有 Office XP 程式,除了 Microsoft Access 以外,因為 Microsoft Access 沒有相等的巨集安全性設定。因此,所有的 Access 文件類型都列在無法存取的不安全副檔名清單中。

Outlook 與 HTML 郵件

下列資訊摘錄自 Microsoft Outlook 說明:
為了防範您所接收之 HTML 郵件可能包含的病毒,不論您的安全性區域設定為何,將不會執行指令碼,並且將停用 ActiveX 控制項。根據預設,Microsoft Outlook 安全性區域是設定為「限制的網站」。

避免安全性功能

電子郵件安全性功能會影響到使用 Outlook 物件模型、CDO 或 Simple MAPI 的所有自訂解決方案,即使那些解決方案加上數位簽章也不例外。這包括下列:

  • 發佈至任何資料夾或表單檔案庫 (包括公司表單檔案庫) 的 Outlook 自訂表單
  • Outlook COM 增益集
  • Outlook Visual Basic for Applications
  • 任何使用 Outlook 物件模型、CDO 或 Simple MAPI 的其他類型開發專案
身為開發人員,您可以運用各種不同的選項嘗試避免安全性功能。視您在何處開發解決方案而定,下列是常見的選擇:
  • Outlook 自訂表單:發佈表單,讓這些表單不僅是一次性表單,或者使用系統管理員功能讓一次性表單中的 VBScript 程式碼可以執行。
  • Outlook Visual Basic for Applications:使用系統管理員功能停用物件模型限制,或者將您的 Visual Basic for Applications 程式碼轉換為 COM 增益集,然後使用系統管理員表單加以註冊。
  • COM 增益集:如果系統管理員使用系統管理員表單來註冊 COM 增益集,這些增益集就能獲得信任。然而,當您使用 COM 增益集時,免除的只有 Outlook 物件模型而已,CDO 物件模型仍會產生警告。

    您無法在 Outlook 2000 中信任 COM 增益集。這是加入 Outlook 2002 版系統管理員表單的功能。
  • 自動化 Outlook 或 CDO 物件模型:使用系統管理員功能停用物件模型限制。
如果可行的話,您可能需要考慮重新設計解決方案,以便在伺服器 (而非用戶端) 上執行。伺服器的 API 並不會由這些電子郵件安全性功能所保護。

您也可以考慮使用不同的訊息 API 或程式庫:
  • Collaboration Data Objects for Windows 2000 (CDOSYS) 此程式庫可以在 Microsoft Windows 2000 (Professional 和 Server 版本) 及 Microsoft Windows XP (Professional Edition) 中找到。CDOSYS 是由 Windows 的 Internet Information Services (IIS) 元件安裝的,因此,您必須安裝 IIS 才能使用 CDOSYS。

    如需詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
    286430 How to send HTML formatted mail using CDO for Windows 2000 and the local pickup directory
    如需有關 CDOSYS 的詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_techsel_tech_1.asp
  • Extended MAPI 您必須以 C/C++ 撰寫程式碼。如需詳細資訊,請造訪下列 Microsoft Developer Network (MSDN) 網站:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/mapi/html/6e7abeda-1cfe-46c9-a794-586aadbd0316.asp

?考

如需有關 Microsoft Outlook 解決方案可用資源,以及常見問題集解答的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
287530 有關自訂表單與 Outlook 解決方案的常見問題集

屬性

文章編號: 290500 - 上次校閱: 2007年8月30日 - 版次: 6.2
這篇文章中的資訊適用於:
  • Microsoft Outlook 2002 Standard Edition
關鍵字:?
kbhowto kbsecurity kbemail KB290500
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com