投稿

7月, 2017の投稿を表示しています

VSTOでOutlook アドイン 送信先(受信者リスト)をSMTPアドレス形式で取得する

VSTOは、Officeのアドインを開発するツールでVisual Studioで作成することができます。 今回は、Outlookのアドインを作ろうとしており、送信時に作動するツールを作ろうと思います。 送信メールのToのリストを取得しようとしたときに、いくつか取得する方法があるのですが、一番楽なのは、Outlook.MailItem.Recipients.Addressを取ってくる方法です。 しかしながら、これでは、Exchange(Office365含む)がメールサーバーの場合、Outlook.MailItem.Recipients.Addressの中の文字列が、X500という形式になってしまい、 o=ExchangeLabs/ou=Exchange Administrative Group ・・・・ というものになります。 これでは使い物にならないので、ちゃんとSMTPアドレスの形式で取得したいところです。 調べるのにちょっと苦労しましたが、ちゃんとサンプルコードがありました。 https://msdn.microsoft.com/ja-jp/library/office/ff868695.aspx これを見て、以下の関数を作成してみました。         private string GetSmtpAddress(Outlook.Recipient recip)         {             const string PR_SMTP_ADDRESS = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E";             Outlook.PropertyAccessor pa = recip.PropertyAccessor;             string smtpAddress = pa.GetProperty(PR_SMTP_ADDRESS).ToString();             Debug.WriteLine(recip.Name + " SMTP=" + smtpAddress);             return smtpAddress;         } これで、私の