プライベートOutlookの配布リストに新しいレコードを追加します。

StackOverflow https://stackoverflow.com/questions/375148

  •  22-08-2019
  •  | 
  •  

質問

私は、ファイルまたはデータベースから名前とメールアドレスを含むレコードを読み、(ないGALから、プライベートの連絡先から)既存のOulook配布リストに追加する必要があります。

私はちょうど私がメールや予定のために働いてきたDASLにLINQを使用して、OLからの読み取りの例を見ましたが、私はdistのリストの内容を一覧表示する方法を見つけ出すことはできません。

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();
    }

私はもっとトリックで新しいものを追加できるようにする必要があるメンバーを読むことができたら。任意の助けいただければ幸います。

役に立ちましたか?

解決

は、それが十分に簡単ですが判明します。

:私はそれはあなたがGALに対して解決された場合にのみ、思ったように私は単純に解決するための呼び出しがありませんでした
Outlook.Recipient rcp = app.Session.CreateRecipient("Smith, John<j.smith@test.com>");
rcp.Resolve();
list.AddMember(rcp);
list.Save();

私はdistList.GetMemberメソッドを使用して、イテレータを作成することができます:

//イテレータとしてラップDistListItem.GetMembers()

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);
        }
    }
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top