Я создаю надстройку для Outlook, используя VS 2008 и C #. Чтобы функционировать, этот плагин просматривает всю электронную почту, используя Redemption, и анализирует ее.
Недавно я столкнулся с вопросом, что кто-то может открыть Outlook без подключения к сети (сеть отключена, отключена, или она мобильна, как ноутбук, и в данный момент у нее нет подключения). Кажется, в получении списка получателей.
System.Runtime.InteropServices.COMException (0x80040115): Error in IAddrBook::OpenEntry: MAPI_E_NETWORK_ERROR
Error: The connection to Microsoft Exchange is unavailable. Your network adapter does not have a default gateway.
Component: Microsoft Exchange Address Book
at Redemption.RDOAddressEntryClass.get_SMTPAddress()
Это происходит внутри этого кода:
/// <summary>
/// Retrieves a list of recipient addresses from an RDOMail object
/// </summary>
/// <param name="rdoItem">The email to analyze</param>
/// <returns>A list of e-mail addresses</returns>
protected List<string> GetRecipients(RDOMail rdoItem)
{
RDORecipients recipients = rdoItem.Recipients;
List<string> recipientList = new List<string>();
if (recipients != null && recipients.Count > 0)
{
for (int i = 1; i <= recipients.Count; i++)
{
RDOAddressEntry addressEntry = recipients[i].AddressEntry;
if (addressEntry != null)
{
string recipient = addressEntry.SMTPAddress;
recipient = recipient.Trim();
if (recipient != null && recipient != String.Empty)
{
recipientList.Add(recipient);
}
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(addressEntry);
addressEntry = null;
}
}
}
if (recipients != null)
{
System.Runtime.InteropServices.Marshal.FinalReleaseComObject(recipients);
recipients = null;
}
return recipientList;
}
Итак, вопрос в том, как мне получить получателей электронного письма без необходимости проходить проверку подлинности или получать разрешение от Exchange, и оно умирает из-за отсутствия сетевого подключения?
РЕДАКТИРОВАТЬ: В качестве альтернативы - есть ли способ кэшировать адреса электронной почты SMTP в Outlook, так что если он позже переходит в автономный режим, ему не нужно разрешать адреса электронной почты?