Я получаю следующую ошибку, когда мой код python пытается отправить простое тестовое электронное письмо.
googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/gmail/v1/users/me/messages/send?alt=json returned "Bad Request">
Мой код выглядит так:
scope = ['https://www.googleapis.com/auth/gmail.send']
path = <path to my serice account key in json format>
self.credentials = ServiceAccountCredentials.from_json_keyfile_name(
path + <service account key>, scope )
self.EMAIL_FROM = self.credentials.service_account_email
self.delegated_credentials = self.credentials.create_delegated(self.EMAIL_FROM)
self.service = build('gmail', 'v1', credentials=self.delegated_credentials)
def send( self, to, subject, body ):
message = MIMEText(body)
message['to'] = to
message['from'] = <valid email account>
message['subject'] = subject
message = {'raw': base64.urlsafe_b64encode(message.as_bytes()).decode()}
try:
message = (self.service.users().messages().send(userId=<valid email account>, body=message)
.execute())
print('Message Id: %s' % message['id'])
return message
except errors.HttpError as error:
print('An error occurred: %s' % error)
Я внимательно следовал инструкциям https://medium.com/lyfepedia/sending-emails-with-gmail-api-and-python-49474e32c81f и существующей документации Gmail API. Я думаю, что я правильно настроил все права доступа и разрешения. Чего мне не хватает и почему ошибка?
Любая помощь очень ценится.