gpt4 book ai didi

c# - 从 C# 在 Outlook 中打开特定的 MailItem

转载 作者:行者123 更新时间:2023-12-02 22:19:34 32 4
gpt4 key购买 nike

我想从我的 C# winforms 应用程序在 Outlook 中打开特定的电子邮件。

目前我得到了以下代码:

//...Get Folder & Entry ID for last Email in Sent Box

Outlook.Application myApp = new Outlook.ApplicationClass();
Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
Outlook.MAPIFolder mySentBox = mapiNameSpace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderSentMail);
Outlook.MailItem myMail = ((Outlook.MailItem)mySentBox.Items[1]);
string guid = myMail.EntryID;
string folderEntryID = mySentBox.EntryID;
string folderStoreID = mySentBox.StoreID;
string mailAddressee = myMail.To;
MessageBox.Show(mailAddressee);

//...Attempt to Open that Email at a later date

Outlook.MAPIFolder getFolder = (Outlook.MAPIFolder)mapiNameSpace.GetFolderFromID(folderEntryID, folderStoreID);
Outlook.MailItem getItem = (Outlook.MailItem)getFolder.Items.Find("[EntryID] = " + guid);
getItem.Display();

代码的第一部分和第二部分将在不同的时间运行,尽管它们目前处于相同的测试方法中。

第一部分获取最近从 Outlook 发送的电子邮件的相关 ID。这部分似乎工作正常,作为我内置的 Messagebox 的证据。

然而,第二部分不起作用,我正在努力寻找正确的代码来访问和打开已在第一部分中获得其 ID 和文件夹位置的特定 mailItem。

谁能帮我完成这个小项目。

最佳答案

最后通过替换以下代码行来完成它。 . .

Outlook.MAPIFolder getFolder = (Outlook.MAPIFolder)mapiNameSpace.GetFolderFromID(folderEntryID, folderStoreID);
Outlook.MailItem getItem = (Outlook.MailItem)getFolder.Items.Find("[EntryID] = " + guid);

有了这个。 . .

Outlook.MailItem getItem = (Outlook.MailItem)mapiNameSpace.GetItemFromID(guid, folderStoreID);

关于c# - 从 C# 在 Outlook 中打开特定的 MailItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13931757/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com