別のユーザーを差出人として Outlook メッセージを送信する
Exchange Online で提供されるメールボックスのアクセス許可を使用すると、ユーザーは、他のユーザー、配布リスト、グループ、リソース、または共有メールボックスから送信されたものとして表示されるメールを送信することができます。 この機能は Microsoft Graph でもサポートされていますが、最終的な動作は、Exchange Online で付与される許可の種類およびメールの送信に使用する API の種類により異なります。
アクセス許可
別のユーザーからのメッセージの送信には、次の 2 種類のアクセス許可が適用されます。
- Microsoft Graph のアクセス許可
- メールボックスのアクセス許可
Microsoft Graph のアクセス許可
ユーザー トークンを使用するアプリケーションは、他のユーザーからメッセージを送信するために Mail.Send.Shared アクセス許可を使用します。
注:
ユーザー トークンではなくアプリケーション トークンが使用され、管理者が Mail.Send アクセス許可に同意しているアプリケーションでは、ユーザーのメールボックスから通常の方法でメールを送信することで、組織内の任意のユーザーとしてメールを送信できます。
メールボックスのアクセス許可
別のユーザーを差出人としたメッセージの送信の動作に影響を与えるアクセス許可には、次の 2 つがあります。代理人として送信するとメールボックス所有者として送信するです。 Mail.Send.Shared アクセス許可を使用してアプリケーションにサインインするユーザーは、このうち少なくとも 1 つのアクセス許可を送信元のメールボックス、グループ、または配布リストに付与しておく必要があります。
注:
現在、Microsoft Graph を使用して、認証されたユーザーがアクセス許可を持っているメールボックスを照会することはできません。
代理人として送信する
このアクセス許可により、メールの受信者は、アプリケーションのユーザーが別のユーザーに代わってメッセージを送信したことを電子メール クライアントに示します。
これは、Microsoft Graph で (実際にメッセージを送信したユーザー) プロパティと from
(メッセージの送信元と見なされるユーザー、グループなど) プロパティとしてsender
公開されます。
{
"id": "AAMkAGE1...",
"subject": "Send mail test",
"sender": {
"emailAddress": {
"name": "Adele Vance",
"address": "AdeleV@contoso.com"
}
},
"from": {
"emailAddress": {
"name": "Pradeep Gupta",
"address": "PradeepG@contoso.com"
}
}
}
ユーザーは Outlook を使用して、ユーザー自身のメールボックスへのアクセス許可を別のユーザーに付与することができます。 管理者は、Microsoft 365 管理センターで、このアクセス許可をすべてのメールボックス、グループ、または配布リストにこのアクセス許可を付与ことができます。
メールボックス所有者として送信する
このアクセス許可を使用する場合、別のユーザーとしてメッセージが送信されたことは表示されません。
sender
プロパティと from
プロパティで同じ値が使われます。
ユーザーは、自分のメールボックスにこのアクセス許可を付与することはできません。 管理者は、このアクセス許可を Microsoft 365 管理センターで付与することができます。
Microsoft Graph を使用して送信する
別のユーザーからメッセージを送信するには、直接送信するか、または下書きを作成しその後に送信します。
別のユーザーを差出人として送信するには、差出人の電子メール アドレスに送信するメッセージで from
プロパティを設定します。 プロパティを sender
設定する必要はありません。 Microsoft Graph は、サインインしたユーザーに付与されたメールボックスのアクセス許可に基づいて適切に設定します。
たとえば、sales@contoso.com
グループからメールを送信するには、メッセージを次のように構成します。
{
"subject": "January sales report",
"toRecipients": [
{
"emailAddress": {
"address": "MeganB@contoso.com"
}
}
],
"from": {
"emailAddress": {
"address": "sales@contoso.com"
}
}
}
送信されたアイテムの動作
メッセージを送信後、送信したメッセージはメッセージを送信したユーザーの [送信済みアイテム] フォルダー、差出人ユーザーの [送信済みアイテム] フォルダー、またはその両方に保存できます。 どこにも保存されない場合もあります。
注:
メールボックスを持たないアドレス (例: 配布リスト) からメッセージが送信する場合、差出人ユーザーの [送信済みアイテム] はありません。
- アプリケーションが
/me
エンドポイント (またはuser-id
の部分がサインインしているユーザーに相当する/users/{user-id}
) を使用して送信する場合、既定では、メッセージは送信ユーザーの [送信済みアイテム] フォルダーに保存されます。 - アプリケーションが、
user-id
の部分が差出人ユーザーに相当する/users/{user-id}
を使用して送信する場合、規定では、メッセージは差出人ユーザーの [送信済みアイテム] フォルダーに保存されます。重要
この方法で送信するためには、送信ユーザーは、代理人として送信するアクセス許可またはメールボックス所有者として送信するアクセス許可に加え、フル アクセスのメールボックス アクセス許可を持っている必要があります。
既定の動作は、他の外部の要因によって変わります。
- 管理者は、差出人ユーザーのメールボックスで、代理人から送信されたメッセージのコピーを必ず [送信済みアイテム] フォルダーに保存するように更新できます。
-
メールの送信要求で
saveToSentItems
プロパティをfalse
に設定することで、アイテムが [送信済みアイテム] フォルダーに保存されないようにできます。 ただし、管理者が "コピーを必ず保存する" 設定の構成を行っている場合、メッセージは引き続き差出人ユーザーの [送信済みアイテム] に保存されます。
例
例 1: /me エンドポイントを使用した送信の成功
この例では、Adele Vance に、Allan Deyoung のメールボックスへの代理人として送信するアクセス許可が付与されています。
要求
POST /me/sendmail
Content-Type: application/json
{
"message": {
"subject": "Expense reports",
"body": {
"contentType": "text",
"content": "Have you submitted your expense reports yet?"
},
"toRecipients": [
{
"emailAddress": {
"address": "MeganB@contoso.com"
}
}
],
"from": {
"emailAddress": {
"address": "AllanD@contoso.com"
}
}
}
}
応答
HTTP/1.1 202 Accepted
例 2: アクセス許可がない状態での送信の失敗
この例では、Adele Vance は Patti Fernandez を差出人としてメールを送信しようとしていますが、代理人として送信するアクセス許可もメールボックス所有者として送信するアクセス許可も付与されていません。 応答には ErrorSendAsDenied
エラーが含まれます。
要求
POST /me/sendmail
Content-Type: application/json
{
"message": {
"subject": "Support ticket",
"body": {
"contentType": "text",
"content": "I noticed you opened a support ticket yesterday..."
},
"toRecipients": [
{
"emailAddress": {
"address": "MeganB@contoso.com"
}
}
],
"from": {
"emailAddress": {
"address": "PattiF@contoso.com"
}
}
}
}
応答
HTTP/1.1 403 Forbidden
Content-Type: application/json
{
"error": {
"code": "ErrorSendAsDenied",
"message": "The user account which was used to submit this request does not have the right to send mail on behalf of the specified sending account. Cannot submit message.",
"innerError": {
"request-id": "24e7991e-01ae-4cc2-8e06-532a96fd8948",
"date": "2019-01-16T18:53:25"
}
}
}
次の手順
- Outlook メールと統合する理由
- Microsoft Graph v1.0 でメール API とその ユース ケース を使用する