Я пытаюсь отправить oauth gmail, используя python, и не могу создать MimeMessages, которые согласуются с API Google.После создания примера сообщения я использую base64 для кодирования его в виде строки.Однако у меня возникает ошибка: TypeError: a bytes-like object is required, not 'str'
Строка вверху стека:
return {'raw': base64.urlsafe_b64encode(message_str)}
Я пробовал использовать разные версии кодировки (encoders.encode_base64(message)
,message.as_string().encode("utf-8")
и т. Д.) И попытались преобразовать message.as_string () в байты (как следует из сообщения об ошибке), но меня встречают различные сообщения об ошибках от Google, в которых говорится, что кодировка не соответствует их требованиям, а именно «MIME»сообщения электронной почты, совместимые с RFC 2822 и закодированные как строки base64url. "
Вся моя функция заключается в следующем.
def create_message(sender, to, subject, message_text):
message = MIMEText(message_text)
message['to'] = to
message['from'] = sender
message['subject'] = subject
message_str = message.as_string()
return {'raw': base64.urlsafe_b64encode(message_str)}
Я понятия не имею, почему это не должно работать.Он скопирован из учебника.Я использую Python 3.7.2