Frage

Ich brauche Aufzeichnungen zu lesen, mit Namen und E-Mail aus einer Datei oder Datenbank und fügen Sie sie in eine bestehenden Oulook Verteilerliste (von den privaten Kontakten, nicht von der GAL).

Ich sah nur Beispiele von OL Lesen LINQ to DASL verwendet, die ich für E-Mail und Termine haben zu arbeiten, aber ich kann nicht herausfinden, wie die Inhalte einer dist Liste:

private static void GetContacts()
    {
         Outlook.Application app = new Outlook.Application();
         Outlook.Folder folder = (Outlook.Folder)app.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
 var distLists = from item in folder.Items.AsQueryable<MyDistList>()
                 where item.DLName == "My Dist List"
                 select item.Item;

        var builder = new StringBuilder();

        foreach (var list in distLists)
        {
            builder.AppendLine(list.DLName);
            foreach (var item in list.Members)
            {
            // can't figure out how to iterate through the members here
            // compiler says Object doesn't have GeNumerator...
            }
        }

        Console.WriteLine(builder.ToString());
        Console.ReadLine();
    }

Nachdem ich die Mitglieder Ich brauche lesen zu können, neue hinzufügen, die noch mehr Trick. Jede mögliche Hilfe würde geschätzt.

War es hilfreich?

Lösung

Es stellt sich heraus, es ist einfach genug. Ich fehlte einfach das Gespräch zu lösen, wie ich dachte, das wäre nur, wenn Sie gegen die GAL Lösung wurden:

Outlook.Recipient rcp = app.Session.CreateRecipient("Smith, John<j.smith@test.com>");
rcp.Resolve();
list.AddMember(rcp);
list.Save();

Und ich kann einen Iterator erstellen, die die distList.GetMember Methode verwendet:

// Wrap DistListItem.GetMembers () als Iterator

public static class DistListItemExtensions
{
    public static IEnumerable<Outlook.Recipient> Recipients(this Outlook.DistListItem distributionList)
    {
        for (int i = 1; i <= distributionList.MemberCount; i++)
        {
            yield return distributionList.GetMember(i);
        }
    }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top