Попытка отправки электронной почты с помощью Gmail API - PullRequest
0 голосов
/ 04 апреля 2020

Я читал учебные пособия и читал статьи, пытаясь научиться понимать API gmail, используя python 3 . Я застрял в методе messages.send.

Моя аутентификация работает, но моя функция CreateMessage выдает ошибку.

Пока мой код:

def CreateMessage(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_bytes())}

    message = CreateMessage('xxxxxxxx@gmail.com','xxxxxxxx@gmail.com','subject','message text')
    service = build('gmail', 'v1', credentials=creds)
    created_message = service.users().messages().send(userId='me', body=message).execute()

Ошибка, которую он выдает: «Ошибка типа: объект байтов типа не JSON сериализуемый». Любая и вся сокрушительная критика приветствуется. Или любые качественные учебники по теме, на которые вы можете направить меня! Спасибо.

1 Ответ

0 голосов
/ 04 апреля 2020

base64.urlsafe_b64encode возвращает объект bytes. Вы должны преобразовать это в строку с .decode("utf-8"), которая должна исправить вашу ошибку.

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