MS Graphでメール送信

この所、MS Graphの話ばかりとなってしまっているが、今回もMS Graphのお話。

今回は、メール送信について。今まで、いくつかメール送信のプログラムを書いてきたが、大抵、MailKit.Net.Smtpを使用し作成していた。

MailKit.Net.Smtpを使用して、Office365経由でメールを送信する場合は、Access Tokenを取得後SaslMechanismOAuth2を作成して、認証するわけだが、結構面倒だ。

調べてみると、MS Graphだけでもメール送信ができるようなので、試してみた。

Azureアプリケーションに必要な権限は

  • Mail.Send

のみ。

メッセージを作成後、いつものごとく、MS Graph Clientインスタンスを作成して、Me.SendMail.PostAsyncメソッドを呼び出すだけ。

// MS Graph Clientインスタンスの作成
var cli = new GraphServiceClient(cred);
// メッセージの作成
var mesg = new Microsoft.Graph.Me.SendMail.SendMailPostRequestBody() {
    Message = new Message() {
        Subject = "メール送信テスト",
        Body = new ItemBody() {
            ContentType = BodyType.Text,
            Content = "メール送信てすとだよぅ"
        },
		// To
        ToRecipients = new List<Recipient>() {
            new Recipient() {
                EmailAddress = new EmailAddress() {
                    Address = "boo@foo.com"
                }
            }
        },
		// Cc
        CcRecipients = new List<Recipient>() {
            new Recipient() {
                EmailAddress = new EmailAddress() {
                    Address = "foo@woo.com"
                }
            }
        },
		// 添付
        Attachments = new List<Attachment>() {
            new FileAttachment() {
                Name = "hoge.png",
                ContentType = "image/png",
                ContentBytes = buff
            }
        }
    },
    SaveToSentItems = true
};
// メール送信
await cli.Me.SendMail.PostAsync(mesg);

takezou について

ソフトウェア開発会社(ITと言う言葉は大嫌い)で働く、元技術者。 未だに、社内システム位は作ってますが・・・ プログラミング言語はC#が好き。 好きなことだけ拾って投稿しているので、内容にはあまり期待しないでねw
カテゴリー: .NET, C#, Microsoft Graph, 技術系 パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください