使用Gmail通过MailKit发送电子邮件

时间:2020-07-15 05:58:07

标签: c# asp.net-core gmail mailkit

TL; DR:需要将Gmail帐户与.net核心网络应用程序“链接”,以便Gmail帐户可以通过MailKit代表.net核心应用程序向在.net核心应用程序中注册的用户发送电子邮件。 / p>

这是场景:

我有一个假设的Gmail帐户“ bob@gmail.com”,密码为“ 12345”,我在.net核心Web应用程序中使用MailKit为该帐户设置了SMTP设置。

现在,在.net核心应用程序中,用户已经注册,没有本地用户名和密码,例如sarah@somedomain.com。

我要实现的功能是莎拉(如果忘记了)可以重置密码的功能。 .net核心应用程序的登录页面上是“忘记密码”链接。链接的页面向忘记密码的用户请求用户名/电子邮件地址。莎拉可以输入她的电子邮件地址,然后在表单上点击“提交”。

然后,应用程序必须使用Mailkit提供的SMTP设置,使用bob@gmail.com的gmail帐户进行身份验证,并向sarah@somedomain.com发送包含重置链接的电子邮件。

这都是非常标准且常用的方法,但这是问题所在。

Google加强了安全性范围,允许“ Less Secure Apps”。可以在bob@gmail.com上启用“ Less Secure Apps”,但是在关闭时,“ Less Secure Apps”设置会自动关闭,提示发送到bob@gmail.com的电子邮件表明已阻止登录尝试。再次启用“减少安全应用程序”可以解决此问题,这不是我想要的。

在Google更改其安全性之前,所有方法都工作正常。

解决此问题的“建议”方法是通过在gmail帐户中使用“应用密码”,但问题是,如何在c#和MailKit中使用应用密码?

我已经联系了Google支持,但他们没有得到我正在尝试的信息。他们建议,在提交“重置密码”表单时,必须先登录bob@gmail.com,然后再发送并发送重置链接邮件,这很愚蠢,因为Sarah不知道Bob的密码是什么,其他用户也不知道需要重设密码。

欢迎使用任何其他解决方案,如果可以在.net核心应用程序中托管简单的SMTP服务器,我会接受的。但是,我不希望用户“使用Google登录”或Facebook或其他任何方式。

我在网上找到的“解决方案”要么已经过时,要么全部与向用户展示“用Google登录”或让用户“验证” Google帐户有关,但这不是他们所关注的Google帐户。

0 个答案:

没有答案
相关问题