使用 MailKit 转发电子邮件

问题描述

我正在尝试使用 MailKit 通过 Gmail SMTP 服务器通过电子邮件发送 EML 文件。我按照 jstedfast 提供的示例构建 MimeMesage 并通过 Gmail SMTP 服务器发送。我可以使用(用户帐户、用户密码)和 OAUTH2 使用简单身份验证发送电子邮件。我按照示例如何 Setting up OAuth2 for use with Google Mail 并且一切正常,但似乎我必须配置访问范围以包含“https://mail.google.com/”

            var accessScopes = new[]
            {
                "https://mail.google.com/","https://www.googleapis.com/auth/gmail.send"
            };

否则发送失败并出现以下错误

535:不接受 5.7.8 用户名和密码。了解更多信息 5.7.8 https://support.google.com/mail/?p=BadCredentials c5sm231676iod.25 - gsmtp

我假设我只需要使用 gmail.send 配置访问范围,但它似乎不起作用。

“https://www.googleapis.com/auth/gmail.send”

我不想配置“https://mail.google.com/”,这意味着对 Gmail 帐户的完全访问权限。当同意屏幕呈现给用户时,用户可能会犹豫是否接受所有似乎需要的访问范围,否则发送邮件将失败。

我尝试配置一些只读范围而不是“https://mail.google.com/”,但它似乎不起作用。

我错过了什么? 谢谢

解决方法

“https://mail.google.com/”范围是唯一适用于 SMTP、POP3 和/或 IMAP 的范围。

所有其他范围仅可用于 Google REST API。