1

我正在使用 Google 的 smtp 服务器使用 oauth2 发送电子邮件。如果我想使用不同的“发件人”地址发送邮件,Google 会让我指定一个。如果发件人地址是该帐户经过验证的发送方式别名,Google 将在电子邮件中使用它。如果它不是经过验证的发送别名,Google 会默默地(我认为)交换发件人地址。

有什么方法可以通过 API 判断 Google 是否会使用提供的电子邮件地址?也许我在问是否有任何方法可以判断电子邮件是否是帐户的发送地址,但我愿意接受其他解决方案来解决更大的问题,即了解 Google 是否会尊重所提供的地址。

4

3 回答 3

1

如果这些是 Google Apps 帐户,您可以使用电子邮件设置 API发送作为帐户的地址列出

如果他们不是 Google Apps 帐户,或者您更喜欢更通用的方法,您可以:

  1. 通过 SMTP 直接从该地址向经过身份验证的用户发送电子邮件。请务必在发送之前设置唯一的消息 ID,您可以通过该 ID 跟踪消息。

  2. 使用 OAuth 身份验证(与 SMTP 相同的 API 范围)通过 IMAP 连接到用户的邮箱,并通过消息 ID (rfc822msgid)搜索发送的消息。

  3. 抓取邮件的标题并查看 From: 标题。如果它与您发送的内容匹配,则允许用户以该地址发送。如果已将其重置为经过身份验证的用户的主要地址,则不允许该用户作为该地址发送。

于 2014-03-08T11:05:47.187 回答
0

您需要添加自己的 SMTP 服务器以使用该验证地址发送邮件。

SMTP 配置

于 2014-03-05T08:44:32.363 回答
0

据我所知,gmail没有API函数来确定gmail是否会在您通过gmail帐户发送的外发电子邮件中使用您指定的发件人地址。

但是,另一种检查 gmail 是否使用您提供的发件人地址的方法可能是将测试邮件发送到电子邮件地址,从而将传入该地址的邮件转发到脚本,该脚本解析传入邮件的标题并确定发件人消息的地址。如果您在安装了 PHP 或其他脚本语言的 Linux 服务器上运行 MTA,那么将它们组合在一起并不难。请参阅http://harrybailey.com/2009/02/send-or-pipe-an-email-to-a-php-script/

另一种方法是使用邮件提供商(例如 Sendgrid),它提供了一种功能,通过该功能可以解析到您域中地址的传入消息并将标头发布到您的 Web 服务器上的脚本(请参阅http://sendgrid .com/docs/API_Reference/Webhooks/parse.html)。

于 2014-03-08T01:20:39.947 回答