連絡先へのメール送信
連絡先の使用例として、アプリケーションのフォームにメール送信ボタンを追加しましょう。ユーザーがこのボタンをクリックしたら、ListBox内の選択された連絡先にメールが自動的に送信されるようにします。このボタンのclickイベントは次のようになります。
Outlook.Application oApp = new Outlook.Application(); if (this.listViewContacts.SelectedItems != null && this.listViewContacts.SelectedItems.Count > 0) { Outlook.ContactItem oRecip = (Outlook.ContactItem) (this.listViewContacts.SelectedItems[0].Tag); Outlook.MailItem email = (Outlook.MailItem) (oApp.CreateItem(Outlook.OlItemType.olMailItem)); email.Recipients.Add(oRecip.Email1Address); email.Subject = "Just wanted to say..."; email.Body = "Have a great day!"; if (MessageBox.Show( "Are you sure you want to send a good day message to " + oRecip.Email1DisplayName + "?", "Send?", MessageBoxButtons.OKCancel) == DialogResult.OK) { try { ((Outlook.MailItem)email).Send(); MessageBox.Show("Email sent successfully.", "Sent"); } catch (Exception ex) { MessageBox.Show("Email failed: " + ex.Message, "Failed Send"); } } oRecip = null; email = null; }
Redemptionを使わない場合、上記のコードもセキュリティ警告の影響を受けます。
ビジネスケース
Outlookの相互運用が効果を発揮するビジネスケースは枚挙にいとまがありません。たとえば私の開発したあるシステムでは、Outlookの相互運用とRedemptionを用いてユーザーのOutlook連絡先をインポートし、その情報をエンタープライズアプリケーション内で作られるプロジェクトと関連付けできるようにしています。これにより、ユーザーがアプリケーション固有の連絡先情報を保存できます。また、RedemptionのAddressBook機構を利用して、Active Directoryレベルでメール送信先のユーザーを選択したりユーザーをレビュープロセスに追加したりできる機能を簡単に実装しています。さらにOutlookのクラスを利用して、ユーザーがメールをOutlookコンソールから添付ファイルとしてプロジェクトへ「プッシュ」できるようなアドインも作成しています。
まとめ
本稿で紹介した機能は、Outlookの相互運用クラスで実現できること(ひいてはOfficeの統合ライブラリセットで実現できること)のほんの一部にすぎません。本稿では、Outlookのクラスを利用してユーザーの連絡先情報を操作する方法と、フォルダ選択ダイアログのような組み込み機能を利用する方法を学びました。これらのライブラリをいろいろ試してビジネスアプリケーションのニーズをどれだけ満たすことができるか、詳しく調べてみることをお勧めします。このシリーズの第2部では、アドインによるOutlookの拡張について解説するのでご期待ください。アドインを利用すると、ユーザーの慣れ親しんだ環境で新しい機能を公開でき、ユーザーの生産性を高めることができます。Officeスイートを出発点にすればOffice関連アプリケーションをゼロから作らなくて済むため、短時間で高い価値を生み出すことができます。
謝辞
このシリーズに関して適切な助言をしてくれたMatt Goebelに感謝します。
