ボットをメールに接続する
この記事の対象: SDK v4
Microsoft 365 メール経由でユーザーと通信するようにボットを構成できます。 電子メール アカウントにアクセスするようにボットを構成すると、新しいメールが到着した時にボットはメッセージを受信します。 その後、ボットはメールを使用して応答できます。 たとえば、ユーザーのメール メッセージに応答して、ボットは「Hi!」というメッセージを含むメール返信を送信できます。 ありがとうございます。 今すぐ処理を開始いたします。"
電子メール チャネルは、現時点では Office 365 でのみ動作します。 その他のメール サービスは、現時点ではサポートされていません。
警告
- セキュリティ上の理由から、Exchange Online では 2022 年 10 月 1 日に基本認証が無効になります。 メール チャネルで、新しい Exchange Online 先進認証モデルがサポートされるようになりました。 基本認証モデルを使用するボットでは、2022 年 10 月の変更後にエラーが発生します。テナント管理者がその日付より前に基本認証を無効にする場合は、以前のバージョン。 詳細については、「基本認証と Exchange Online - 2021 年 9 月の更新」を参照してください。
- 望まれていない電子メールや承認されていない電子メールを一括送信するボットなどの "スパムボット" の作成は、Bot Framework の倫理規定違反です。
前提条件
- Azure サブスクリプションをお持ちでない場合は、開始する前に無料アカウントを作成してください。
- ボット専用の Office 365 メール アカウント。
- ボット
Mail.ReadWrite
とMail.Send
アクセスを許可するアクセス許可。 詳細については、「Microsoft Entra ID アプリケーションの同意エクスペリエンスについて」を参照してください。
Note
個人の電子メール アカウントをボットで使用しないでください。これを行うと、その電子メール アドレスに送信されたすべてのメッセージがボットに転送されます。 その結果、ボットが不適切な応答を送信元に送信する可能性があります。 このため、ボットでは、専用の M365 メール アカウントを使用する必要があります。
先進認証を使用するようにメールを構成する
Azure Portalを開きます。
ボットの [Azure Bot リソース] ブレードを開きます。
左側のペインで、[チャネル] を選択します。
[メール] を選択して、[メールの構成] ブレードを開きます。
[認証の種類] を [先進認証 (OAUTH)] に設定します。
[メール アドレス] で、ボットの専用の Office 365 メール アカウントを入力します。
[承認] を選択します。
メッセージが表示されたら、メール アカウントにサインインし、読み取り/書き込みアクセス許可を付与し、ボットにアクセス許可を送信します。
成功すると、ページが開き、検証コードが表示されます。 検証コードをコピーする
[認証コード] に、先ほどコピーした検証コードを入力します。
メールの構成を終了するには、[適用] をクリックします。
基本認証を使用するようにメールを構成する
Note
- Microsoft Entra ID に代わるベンダーを使用したフェデレーション認証はサポートされていません。
- セキュリティ上の理由から、Exchange Online での基本認証の使用は 2022 年 10 月 1 日に無効になっています。 期限前に先進認証を使用するように、すべてのボットを移行する必要があります。
- Microsoft Exchange Server を使用している場合は、基本認証を使用するようにメールを構成する前に、まず自動検出が有効になっていることを確認してください。
- ご使用の Office 365 アカウントで MFA が有効になっている場合は、まず所定のアカウントの MFA を無効にしてから、アカウントのメール チャネルの構成を行ってください。 そうでない場合、接続に失敗します。
Azure Portalを開きます。
ボットの [Azure Bot リソース] ブレードを開きます。
左側のウィンドウで、[チャネル (プレビュー)] を選択して [チャネル] ブレードを開きます。
[メール] を選択して、[メールの構成] ブレードを開きます。
- [認証の種類] を [基本認証] に設定します (2022 年 10 月から無効になります)。
- [メール アドレス] で、ボットの専用の Office 365 メール アカウントを入力します。
- [パスワード] に、メール アカウントのパスワードを入力します。
- メールの構成を終了するには、[適用] をクリックします。
メールをカスタマイズする
メール チャネルは、アクティビティ channelData
プロパティを使用して、より高度なカスタマイズされたメールを作成するためのカスタム値の送信をサポートしています。
次のスニペットは、ボットからユーザーへの受信カスタム メール メッセージの channelData
の例を示しています。
{
"type": "ActivityTypes.Message",
"locale": "en-Us",
"channelID": "email",
"fromName": { "id": "mybot@mydomain.com", "name": "My bot"},
"recipientName": { "id": "joe@otherdomain.com", "name": "Joe Doe"},
"conversation": { "id": "123123123123", "topic": "awesome chat" },
"channelData":
{
"htmlBody": "<html><body style = \"font-family: Calibri; font-size: 11pt;\" >This is more than awesome.</body></html>",
"importance": "high",
"ccRecipients": "Yasemin@adatum.com;Temel@adventure-works.com",
}
}
アクティビティ channelData
プロパティの詳細については、「カスタム メール メッセージを作成する」を参照してください。
トラブルシューティング
アプリケーションへの同意の処理中に発生する可能性があるエラーについては、「Microsoft Entra ID アプリケーションの同意エクスペリエンスについて」および「アプリケーションへの同意を実行するときに予期しないエラーが発生する」を参照してください。
お客様のボットが、受信電子メール メッセージへの応答として 15 秒内に 200 OK の HTTP 状態コードを返さない場合、電子メール チャネルはメッセージを再送信しようとするため、お客様のボットは同じメール メッセージ アクティビティを数回受け取る可能性があります。 詳細については、「How bots work (ボットのしくみ)」の「HTTP details (HTTP の詳細)」セクション、および「タイムアウト エラーのトラブルシューティング」に関する記事を参照してください。
その他のリソース
- ボットをチャネルに接続する
- Bot Framework SDK for .NET を使用してチャネル固有の機能を実装する
- チャネルのリファレンス記事を読み、各チャネルでサポートされる機能についての詳しい情報を入手する