OutlookでHello World!
プロジェクトの作成
[ファイル]⇒[新規作成]⇒[プロジェクト]からOutlookアドインを選択し、プロジェクトを作成します。
Outlookフォーム領域の追加
ソリューションエクスプローラの右クリックメニューから、[追加]⇒[新しい項目]を開きます。
以下のようなダイアログが開くので、[Outlookフォーム領域]を選択します。
ウィザード形式の設定が始まります。ここでは、新しいフォーム領域のデザインを選択します。
フォーム領域の種類は、「隣接」にします。
そのまま次へ進みます。
完了を押します。
これで、Outlook上にフォーム領域が作成できました。
コントロールの追加
イベントハンドラの実装
ボタンをダブルクリックして、イベントハンドラを生成します。
生成されたイベントハンドラ(button1_Click)の中身を実装します。ここでは、
MessageBox.Show("Hello world!”);
という1行を加えます。
さらに、usingの定義をしている部分に、以下のコードを足します。
using System.Windows.Forms;
[デバッグ]⇒[デバッグの開始]を実行すると、以下のようにOutlookが起動します。
メール内容の下に、以下のような領域が表示されます。
ボタンをクリックすると、以下のダイアログが表示されます。
メールを送信する
次に、メールを送信するコードを追加します。
まずは、実際にメールを送信する部分となるThisAddin.csを開き、コードを追加します。
追加したコードは以下の通りです。
public void SendEmailtoContacts() { string subjectEmail = "Hello world!"; string bodyEmail = "Hello world!"; Outlook.MAPIFolder sentContacts = (Outlook.MAPIFolder) this.Application.ActiveExplorer().Session.GetDefaultFolder (Outlook.OlDefaultFolders.olFolderContacts); foreach (Outlook.ContactItem contact in sentContacts.Items) { if (contact.Email1Address.Contains("example.com")) { this.CreateEmailItem(subjectEmail, contact .Email1Address, bodyEmail); } } } private void CreateEmailItem(string subjectEmail, string toEmail, string bodyEmail) { Outlook.MailItem eMail = (Outlook.MailItem) this.Application.CreateItem(Outlook.OlItemType.olMailItem); eMail.Subject = subjectEmail; eMail.To = toEmail; eMail.Body = bodyEmail; eMail.Importance = Outlook.OlImportance.olImportanceLow; ((Outlook._MailItem)eMail).Send(); }
FormRegion1.csを開き、ボタンのイベントハンドラにメール送信を行う処理を追加します。
追加したコードは以下となります。
Globals.ThisAddIn.SendEmailtoContacts();
実行の前に、Outlookのアドレス帳に、someone@example.com を登録しておきます。
[デバッグ]⇒[デバッグの開始]を実行し、ボタンを押すと、ダイアログが表示されます。OKを押してダイアログを消すと、その後に、someone@example.com 宛にメールが送信されます。正常に送信されたかどうかは、送信済みアイテムフォルダで確認できます。
アドインの削除
ここまでで追加したアドインは、インストールされたまま残ってしまうため、ここで削除しておきます。
[ツール]⇒[セキュリティセンター]を開きます。
セキュリティセンターが開いたら、アドインを選択します。
アドイン画面の下の方に、以下のような内容がありますので、[設定]ボタンを押します。
すると、現在インストールされているアドインの一覧が出てきますので、この中から、不要な物(ここではOutlookAddIn1)を削除します。なお、先頭にあるチェックボックスは、削除処理には無関係ですので、注意してください。削除処理は、選択されている(=青くなっている)ものが対象となります。