2

这篇 github 文章之后,我能够使用 OAuth2 对 GMail 进行身份验证,并以编程方式使用 SMTP 和 IMAP(来自 MailKit 的客户端)发送 gmail 消息。该链接由作者 (jstedfast) 友情提供。该方法的问题在于它会打开浏览器弹出窗口并要求用户至少不时进行身份验证。也许这是因为该方法使用“用户机密”而不是服务帐户和私钥/公钥,但我不确定。

我需要从服务器类型的应用程序发送一封电子邮件,其中没有用户手动推动进程。到目前为止,该应用程序使用标准 SMTP 身份验证,但这需要 GMail/GSuite 帐户启用“不太安全”设置,而客户不希望这样做。

有一篇非常古老的文章(同样由 jstedfast 撰写)展示了如何使用服务帐户和公钥/私钥使用 OAuth2 对电子邮件客户端进行身份验证。我按照那篇文章写信(除了我使用 json-packaged 证书,而不是 p12 并且使用 GMail 而不是 GSuite 电子邮件)但结果是否定的。也就是说,当我尝试执行 client.Authenticate(accessToken) 时,响应是读取 {"status":"400", "schemes":"Bearer", "scope": "https://mail.google.com /"}

我可以访问 GSuite,如有必要,我不介意使用它,但我还没有找到有效的明确说明和示例。任何人都可以指出通过私钥/公钥加密使用 OAuth2 进行身份验证且不需要用户交互的 C# 示例吗?

4

0 回答 0