获取令牌以通过Python发送Office 365电子邮件

时间:2019-10-11 18:49:26

标签: python email outlook-restapi

有人知道如何通过Office 365使用Python发送电子邮件吗?我最近发现的是这个,但是它不起作用。我对Python真的很陌生,所以如果您能对我尽可能简单地解释,我将不胜感激。 :)

https://pypi.org/project/O365/

从以上看来,您似乎必须在Microsoft Azure服务中创建一个应用程序并将其连接到Outlook电子邮件。我已尝试执行此操作,尽管我已授予上述所有权限,但仍然遇到问题。我认为问题在于有关检索有效令牌的问题??这是我试图获取有效令牌的方法:

我已尝试按照上面链接中的说明运行以下脚本:

Note: Thank you! Because of you i wrote C++ after 5 years!

当我运行此程序时,我可以选择去单击该网站。

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?response_type=code&client_id= {CLIENTID}&redirect_uri = https%3A%2F%2Flogin.microsoftonline.com%2Fcommon%2Foauth2%2Fnativeclient&scope = https%3A%2F%2Fgraph.microsoft.com%2FMail.ReadWrite + https%3A %2F%2Fgraph.microsoft.com%2FUser.Read + https%3A%2F%2Fgraph.microsoft.com%2FMail.Send + offline_access&state = {SOMECODE}&access_type = offline

然后,当我登录并授予此应用访问我的电子邮件的权限时,这将带我进入Outlook登录页面。然后,它将我重定向到一个空白页面,在该页面上我假设(但不能肯定地说),我将此经过身份验证的链接复制回python脚本,在该脚本中会出现一个新文本字段,供我将新链接复制到其中。当我这样做时,我假设应该检索令牌,但是却收到错误消息:

 from O365 import Account 
credentials = ('my_client_id', 'my_client_secret')
# the default protocol will be Microsoft Graph 
# the default authentication method will be "on behalf of a user"
account = Account(credentials)
if account.authenticate(scopes=['basic', 'message_all']):
 print('Authenticated!')
# 'basic' adds: 'offline_access' and 'https://graph.microsoft.com/User.Read'
# 'message_all' adds: 'https://graph.microsoft.com/Mail.ReadWrite'
and'https://graph.microsoft.com/Mail.Send'

任何帮助将不胜感激!为此工作了几个小时,似乎无法解决。感觉这很简单,我很想念。谢谢!

0 个答案:

没有答案