Django - Office 365 通过通讯组发送消息

问题描述 投票:0回答:1

我正在尝试使用通讯组作为

DEFAULT_FROM_EMAIL
设置在 Django 中发送电子邮件。我正在使用 Office 365 发送它。我已经与名为 django-o365mailpython-o365 的包进行了斗争,以使其达到功能状态。这方面的文档就够可怜的了。我对了解通过 Office 365 或任何其他相信它拥有所有答案的第三方平台发送电子邮件的微小细节不感兴趣。它应该是简单的,但作为一个行业,我们选择让它变得困难。 [咆哮结束。]

以下是我的适当设置:

DEFAULT_FROM_EMAIL = "[email protected]"
EMAIL_BACKEND = 'django_o365mail.EmailBackend'
O365_MAIL_CLIENT_ID = env('O365_MAIL_CLIENT_ID')
O365_MAIL_CLIENT_SECRET = env('O365_MAIL_CLIENT_SECRET')
O365_MAIL_TENANT_ID = env('O365_MAIL_TENANT_ID')
O365_ACTUALLY_SEND_IN_DEBUG = True
O365_MAIL_MAILBOX_KWARGS = {'resource': '[email protected]'}

我尝试了各种方法来实现我的目标,这里有一些错误消息,可以引导您的思维过程走上错误的道路,您可能认为这是解决所有问题的方法。请记住,我只想向某个通讯组发送一封电子邮件。

404 Client Error: Not Found for url: https://graph.microsoft.com/v1.0/users/[email protected]/sendMail | Error Message: The requested user '[email protected]' is invalid.

当我将

DEFAULT_FROM_EMAIL
设置为
'[email protected]'
并将
O365_MAIL_MAILBOX_KWARGS
设置为
'[email protected]'
时,我收到此错误。

403 Client Error: Forbidden for url: https://graph.microsoft.com/v1.0/users/[email protected]/sendMail | Error 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.

现在,当我写这篇文章时,我发现问题可能在于 URL 具有

users
而不是
groups
。我无法在这两个项目的任何文档中找到如何修改它。我非常感谢您的帮助。

django microsoft-graph-api office365 microsoft-graph-mail distribution-list
1个回答
0
投票
O365_MAIL_MAILBOX_KWARGS = {'resource': '[email protected]'}

这已设置为在分发列表上具有 sendAs 权限的邮箱,当您使用服务主体进行模拟邮箱的身份验证(您在 365_MAIL_MAILBOX_KWARGS 中设置的内容)时,理解起来有点棘手,因此适用的权限到邮箱(例如,它是否可以作为分发发送)将影响您是否可以作为该 DL 发送,如果没有在 DL 上授予发送为权限,则它将不起作用。 https://learn.microsoft.com/en-us/graph/outlook-send-mail-from-other-user中适用的规则也很重要,因此如果您执行 SendAS 或如果您进行代表发送,则从 DL 到发件人到邮箱。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.