首页 > 解决方案 > Gmail API Oauth2 从不同地址发送

问题描述

googleapiclient我可以使用 Python 和谷歌库( 、、google_auth_oauthlib.flow和)发送电子邮件google.auth.transport.requests。我正在尝试获取另一个“发件人”或“回复”地址,但它不起作用。我创建消息的代码是这样的:

# Returns an e-mail message suitable for submission through the gmail api.
def create_message(sender, to, subject, message_text):
    message = MIMEMultipart()
    message['to'] = to
    #message['from'] = sender
    message['from'] = 'derp@nowhere.com'
    message['subject'] = subject
    message.attach(MIMEText(message_text, 'html'))
    return {'raw': base64.urlsafe_b64encode(message.as_string().encode()).decode()}

如您所见,我已经调整frommessage. 发送此消息时,它来自 gmail 帐户所有者,而不是“derp”。如何使消息来自不同的地址?

标签: pythonoauth-2.0gmail-apigoogle-oauthgoogle-api-python-client

解决方案


将您要发送电子邮件的电子邮件地址添加为“发送邮件为”帐户:https ://mail.google.com/mail/u/2/#settings/accounts 。该其他帐户有必要验证他控制该电子邮件地址。

如果没有此验证过程,似乎不可能使用 gmail oauth “欺骗”电子邮件,但如果您使用已弃用的“不太安全的应用程序”,它仍然是可能的。


推荐阅读