【问题标题】:Sending email on behalf of another user代表其他用户发送电子邮件
【发布时间】:2020-06-23 12:33:06
【问题描述】:

目前,我使用 GMail API(Web 的 OAuth 凭据)来阅读和发送电子邮件。我们如何代表另一个用户(即 noreply@example.com)发送电子邮件?

在企业应用程序中,我们是否需要使用服务帐户来读取特定用户的邮件标签、消息并代表该用户发送电子邮件?

【问题讨论】:

  • GMAIL 要求电子邮件 FROM 地址和凭据来自同一帐户。如果您使用默认凭据,则登录的用户也必须是相同的电子邮件 FROM 地址
  • 您是否检查过this method of the documentation 是否发送了带有别名的from 字段的电子邮件?您是否介意使用别名,或者您根本不希望使用别名,即使它最终与预期的名称相同?
  • 我检查了上面给出的文档链接,但它仅适用于服务帐户概念。我认为它不适用于用户 OAUTH 凭证方案。然而;使用服务帐号的方式,我们可以访问gmail用户的邮箱而不是服务帐号邮箱吗?
  • 我们可以访问gmail用户的邮箱而不是服务帐户邮箱是什么意思?使用服务帐户,您将能够使用别名发送电子邮件。此电子邮件将在服务帐户发送的邮件收件箱中,如果有人回复这些邮件,除非您设置转发电子邮件地址,否则它将最终在服务帐户邮箱中。让我知道这是否澄清了任何事情。
  • 感谢您的澄清。连我以前都相信你说的话。然而;我觉得有点怀疑这是否可能。我知道这听起来有点奇怪。最好把东西清理干净。

标签: c# gmail-api google-oauth google-api-dotnet-client


【解决方案1】:

解决方案

确实,您可以使用service accountdomain wide delegation 使用Gmail API 发送和读取其他用户在您的域中 的邮箱。

您需要使用域范围的授权向服务帐户授予 Project RoleOwner

除了上面链接的官方文档,here is a tutorial 关于如何使用服务帐户代表其他用户发送电子邮件。要从他们的邮箱中阅读,您将遵循相同的过程。 Here 是有关邮件委托的更多信息,如果您有兴趣。

注意:要执行此操作,您的服务帐户必须与您尝试发送和阅读邮件的用户电子邮件位于同一域中。

我希望这对您有所帮助。让我知道您是否需要其他任何内容,或者您​​是否不理解某些内容。 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-21
    • 1970-01-01
    • 2011-06-01
    • 2016-05-25
    • 2015-09-08
    • 1970-01-01
    相关资源
    最近更新 更多