Как решить «требуется объект, подобный байтам, а не ‘str'» в функции create_message()?

#python #email #encoding #google-api #gmail-api

#python #Адрес электронной почты #кодирование #google-api #gmail-api

Вопрос:

Я получаю сообщение об ошибке при создании нового сообщения с использованием create_message() . функция, указанная надhttps://developers.google.com/gmail/api/guides/drafts .

 def create_message(sender, to, subject, message_text):
    message = MIMEText(message_text)
    message['to'] = to
    message['from'] = sender
    message['subject'] = subject
    return {'raw': base64.urlsafe_b64encode(message.as_string())}
  

Ошибка: TypeError: требуется объект, подобный байтам, а не ‘str’

Комментарии:

1. вы используете python3? также, в каком именно месте вы это получаете, вам нужно будет добавить ‘b’ в соответствии с

Ответ №1:

base64.urlsafe_b64encode ожидает bytes , но тип message.as_string() является str .

Вместо этого используйте метод as_bytes сообщения.

 return {'raw': base64.urlsafe_b64encode(message.as_bytes())}