2 Stimmen

Outlook Addin für den Zugriff auf Exchange-Empfänger im Offline-Modus?

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?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X