Получение токена для отправки электронной почты Office 365 через Python - PullRequest
0 голосов
/ 11 октября 2019

Кто-нибудь знает, как отправить письмо с Python через Office 365? Ближе всего я нашел это, однако, это не работает. Я действительно новичок в Python, поэтому я был бы очень признателен, если бы вы могли объяснить как можно проще для меня. :)

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

Из вышесказанного кажется, что вам нужно создать приложение в службе Microsoft Azure и подключиться через него к электронной почте Outlook. Я пытался сделать это, и хотя я предоставил все разрешения, описанные выше, у меня все еще есть проблемы. Я думаю, что проблема касается получения действительного токена ?? Вот что я пытался сделать, чтобы получить действительный токен:

Я попытался запустить следующий скрипт, как описано в инструкциях по ссылке выше:

 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'

Когда я запускаю этотЯ получаю возможность перейти на этот сайт, на котором я нажимаю.

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, где появляется новое текстовое поле, чтобы я мог скопировать новую ссылку. Когда я делаю это, я предполагаю, что токен должен быть получен, но вместо этого я получаю ошибку:

Unable to fetch auth token. Error: HTTPSConnectionPool(host='login.microsoftonline.com', port=443): Max retries exceeded with url: /common/oauth2/v2.0/token (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

Любая помощь будет очень признательна! Работая над этим часами, похоже, не получится. Почувствуй, что-то простое, что мне не хватает. Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...