【问题标题】:Gmail API Oauth2 Send from different addressGmail API Oauth2 从不同地址发送
【发布时间】:2020-06-02 23:51:08
【问题描述】:

我可以使用 Python 和谷歌库(googleapiclientgoogle_auth_oauthlib.flowgoogle.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()}

如您所见,我调整了messagefrom 属性。发送此消息时,它来自 gmail 帐户所有者,而不是“derp”。如何让消息来自不同的地址?

【问题讨论】:

  • 此功能在使用“不太安全的应用程序”时运行良好。
  • 您好@LimitedAtonement,所以您正尝试从其他用户的电子邮件地址发送电子邮件?如果是这样,让其他帐户批准所需的权限是正常的。至于“不太安全的应用程序”,谷歌可能会阻止任何试图登录该帐户的人,我认为这不是一个可行的选择。干杯!
  • @ale13 谢谢!我们目前采用的解决方案使用“不太安全的应用程序”,并且能够从我们可以想象的任何“发件人”地址发送。现在我们需要让其他帐户批准吗?这太糟糕了。我知道电子邮件是一种不安全的通信媒介,因为电子邮件很容易被欺骗。我猜谷歌正试图单枪匹马地结束这种简单的欺骗。

标签: python oauth-2.0 gmail-api google-oauth google-api-python-client


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2014-12-28
    • 2017-05-26
    • 2018-11-11
    • 2016-12-23
    • 2018-12-14
    相关资源
    最近更新 更多