Недавно Google отключил свою «устаревшую» возможность загрузки, поэтому мне пришлось изменить наши приложения, чтобы использовать пользователей Google(). Messages(). Send api.Отправить крупный адрес электронной почты через API Gmail в Python
Однако это не работает ни на чем более чем 5mb. Я видел одно сообщение на www о том, как это сделать в PHP, но ничего в Python.
Вот мой существующий код:
http = #My login routine
service = build('gmail','v1',http=http)
email = {'raw':base64.urlsafe_b64encode(message)}
reply = (service.users().messages().send(userId=user,body=email).execute())
Google имеет обширную документацию, но не на конкретной возможности отправлять большие сообщения электронной почты в Python. На самом деле на этой странице:
https://developers.google.com/gmail/api/v1/reference/users/messages/send
Они говорят об использовании базового API для отправки сообщений, как большой, как 35MB, но это просто не работает. Я получаю ошибку «ResponseNotReady()».
Я читал о загружаемых фрагментах, возобновляемых загрузках, но ничего не пришло в себя.
Любые мысли там?
У меня была та же проблема [два года назад] (http://stackoverflow.com/questions/24908700/mail-attachment-wrong-media-type-gmail-api/24957873#24957873), и мне пришлось идти вне официальной клиентской библиотеки (см. править в конце ответа). Короче: не кодируйте сообщение и используйте простой URL-адрес загрузки с помощью Content-Type 'message/rfc822'. – Tholle
Любые мысли о возможности создания формата URL из Python? – AaronF