Ich erstelle ein Outlook-Addin mit VS 2008 und C#. Um zu funktionieren, geht dieses Addin durch alle E-Mails mit Redemption und parst sie.
Vor kurzem bin ich auf das Problem gestoßen, dass jemand Outlook ohne Netzwerkverbindung öffnet (Netzwerk offline, nicht angeschlossen, oder er ist mobil wie ein Laptop und hat zufällig gerade keine Verbindung). Das Problem scheint darin zu bestehen, eine Liste der Empfänger zu erhalten.
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()
Dies geschieht innerhalb dieses Codes:
/// <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;
}
Die Frage ist also: Wie erhalte ich die Empfänger einer E-Mail, ohne dass ich mich bei Exchange authentifizieren oder von dort aus auflösen muss und die E-Mail abbricht, weil es keine Netzwerkverbindung gibt?
EDIT: Alternativ - gibt es eine Möglichkeit, die Smtp-E-Mail-Adressen in Outlook zwischenzuspeichern, so dass, wenn es später offline geht, die E-Mail-Adressen nicht aufgelöst werden müssen?