徵狀

當您在 Outlook 2013 中使用 outlook 物件模型UserProperty 物件新增至 IMAP 帳戶的電子郵件訊息時,您會收到下列錯誤訊息:

執行時間錯誤 "-2147221239 (80040109)":由於郵件已變更,因此無法執行該作業。

注意事項

  • 這個問題只會在您第一次在快速連續執行程式碼時,將 UserProperty 物件新增至相同的電子郵件訊息時,才會發生此問題。

  • 這個問題不會發生在已停用 [預覽] 窗格,或是在您第一次執行程式碼之前切換電子郵件。

因應措施

若要解決此問題,請在執行程式碼後關閉所有專案,以將 UserProperty物件新增至電子郵件訊息。 或者,只對相同的電子郵件訊息執行一次程式碼。

發生這個問題是因為針對 IMAP 帳戶多次編輯及儲存電子郵件訊息的效率較低。 儲存電子郵件時,必須將其上傳到伺服器做為全新的電子郵件訊息,並刪除原始的電子郵件訊息。 如果啟用 [預覽] 窗格,原始的電子郵件訊息會保留在記憶體中,而基本的電子郵件訊息會因為多重上傳而變更。 若要再現此問題,請執行下列步驟:

  1. 在郵寄清單中選取電子郵件訊息。

  2. 請確定 [預覽] 窗格已啟用。

  3. 以快速連續兩次為相同的電子郵件訊息執行下列程式碼:

    Function ReproCode()Dim oExp As Outlook.ExplorerDim oSel As Outlook.SelectionDim oMail As Outlook.MailItemDim oProp As UserPropertyDim oProps As UserProperties   Set oExp = Application.ActiveExplorerSet oSel = oExp.Selection   For iCount = 1 To oSel.CountIf oSel.Item(iCount).Class = OlObjectClass.olMail ThenSet oMail = oSel.Item(iCount)Set oProps = oMail.UserPropertiesSet oProp = oProps.Add("TextProp", olText, False, 1)oProp.Value = "Sample Text"oMail.SaveEnd IfNext iCountSet oExp = NothingSet oSel = NothingSet oMail = NothingSet oProp = NothingSet oProps = Nothing   End Function

注意:Microsoft 只提供圖例的程式設計範例,不含任何明示或暗示保證。這包括但不限於針對特定用途的適售性或適用性的默示擔保。本文假設您熟悉所示範的程式設計語言,以及用來建立及偵錯工具的工具。Microsoft 支援工程師可以協助說明特定程式的功能。不過,它們不會修改這些範例來提供額外的功能或構造程式,以符合您的特定需求。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×