Я работаю над сценарием, который отправляет мне электронное письмо, когда я получаю новые оценки, бла-бла.Все работает отлично, за исключением того, что отправитель отображается в качестве моего электронного письма ...
from __future__ import print_function
from apiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
from email.mime.text import MIMEText
import base64
def create_message(sender, to, subject, message_text):
"""Create a message for an email.
Args:
sender: Email address of the sender.
to: Email address of the receiver.
subject: The subject of the email message.
message_text: The text of the email message.
Returns:
An object containing a base64url encoded email object.
"""
message = MIMEText(message_text)
message['to'] = to
message['from'] = sender
message['subject'] = subject
return {'raw': base64.urlsafe_b64encode(message.as_string().encode("utf-8")).decode()}
def send_message(message):
global service
user_id = "me"
"""Send an email message.
Args:
service: Authorized Gmail API service instance.
user_id: User's email address. The special value "me"
can be used to indicate the authenticated user.
message: Message to be sent.
Returns:
Sent Message.
"""
try:
message = (service.users().messages().send(userId=user_id, body=message).execute())
return message
except exception as error: # I am aware this line is broken, but it does goes through successfully so this does not execute
print('An error occurred: %s' % error)
# Setup the Gmail API
SCOPES = 'https://www.googleapis.com/auth/gmail.send'
store = file.Storage('credentials.json')
creds = store.get()
if not creds or creds.invalid or creds == "None":
flow = client.flow_from_clientsecrets('client_secret.json', SCOPES)
creds = tools.run_flow(flow, store)
service = build('gmail', 'v1', http=creds.authorize(Http()))
msg = create_message("fname lname", "to@email.com", '', content)
send_message(msg)
Это мой код для отправки сообщения, но мое письмо отображается в качестве отправителя, когда я отправляю сообщение ... Какя могу это исправить?
(я уже пытался установить отправителя как "John Smith" <from@email.com>
и John Smith <from@email.com>
)