有人知道我如何通过Web服务器(Azure Functions)向gmail发送电子邮件吗?
这是供客户通过网站与我们联系的,因此它应该毫不费力且没有挑战。
我已遵循本指南
https://developers.google.com/gmail/api/quickstart/dotnet?authuser=1
在创建了自己的IDataStore for Azure实现之后,我很痛苦地意识到这将尝试通过Web浏览器来挑战。
我们以前曾使用SMTP并使用与此类似的方法
How to send email by using MailKit?
但这需要我们设置“允许不安全的应用程序”标志,该标志会在一段时间后自动关闭并导致我们的“与我们联系”页面停止工作。
我想使用我创建的API密钥应该可以实现,但是我找不到任何有关仅使用API密钥发送电子邮件的文档。
答案 0 :(得分:0)
如果您使用的是gsuite域电子邮件地址,则可以使用服务帐户。让我知道您是否需要一些代码。
否则,您将需要在本地授权代码保存刷新令牌后运行代码,然后将Idatastore设置为使用传递给它的刷新令牌。只要定期使用刷新令牌,它就不会过期。并不是说它不能,但是如果它失败了,它不应该需要一点时间,只是为其生成一个新的刷新令牌,它将重新启动并运行。
如果您想使用smtp,可能需要解决Xoauth2,但我不知道与之兼容的C#开箱即用,并且Google .net客户端库不适用于smpt服务器。