前提
・Outlookがインストールされていること
・COM(Component Object Model)の「Microsoft Outlook 16.0 Object Library」を利用する
参照を追加する
以下の記事の「参照を追加する」を実施する。
処理を実装する
Outlookの会議依頼メールを送信する処理を実装する
(省略)
using Microsoft.Office.Interop.Outlook;
using Outlook = Microsoft.Office.Interop.Outlook;
(省略)
private void Button_Click(object sender, RoutedEventArgs e)
{
var app = new Outlook.Application();
Outlook.AppointmentItem appt = app.CreateItem(Outlook.OlItemType.olAppointmentItem) as Outlook.AppointmentItem;
//宛先(必須)
Outlook.Recipient recipRequired1 = appt.Recipients.Add("hogehoge@gmail.com");
recipRequired1.Type = (int)Outlook.OlMeetingRecipientType.olRequired;
//宛先(任意)
Outlook.Recipient recipRequired2 = appt.Recipients.Add("piyopiyo@gmail.com");
recipRequired2.Type = (int)Outlook.OlMeetingRecipientType.olOptional;
//場所
appt.Location = "第1会議室";
//開始時刻
appt.Start = Convert.ToDateTime("2021/3/3 9:00");
//終了時刻
appt.End = Convert.ToDateTime("2021/3/3 13:00");
//件名
appt.Subject = "XXXの件について";
//メールの種類を「会議依頼」※会議依頼キャンセル通知ではなく
appt.MeetingStatus = Outlook.OlMeetingStatus.olMeeting;
//本文
String message = "各位" + Environment.NewLine + Environment.NewLine +
"お疲れさまです。田中です。" + Environment.NewLine +
"XXXの件について、打ち合わせをお願いします。";
appt.Body = message;
//終日のチェックをしない
appt.AllDayEvent = false;
//アラームを15分
appt.ReminderSet = true;
appt.ReminderMinutesBeforeStart = 30;
//公開方法を空き時間
appt.BusyStatus = OlBusyStatus.olFree;
//返信依頼をあり
appt.ResponseRequested = true;
//表示
appt.Display();
//送信
//appt.Send();
}
上記では以下を設定している。
No. | 項目 |
---|---|
1 | 宛先(必須) |
2 | 宛先(任意) |
3 | 場所 |
4 | 開始時刻 |
5 | 終了時刻 |
6 | 件名 |
7 | メールの種類 |
8 | 本文 |
9 | 終日のチェック |
10 | アラーム |
11 | 公開方法 |
12 | 返信依頼 |
設定できる項目の詳細は、公式サイトを参照する。
実行結果
会議依頼メールが作成され表示された。


参考①
Outlookで普通のメールを送信する方法は、以下の記事をご確認ください。
参考②
C#からではなく、VBAからOutlookを使用して会議依頼メールを送信することもできます。
詳細は以下の記事をご確認ください。
参考③
C#からではなく、VBScriptからOutlookを使用して会議依頼メールを送信することもできます。
詳細は以下の記事をご確認ください。