C#以编程方式通过Gmail发送电子邮件

时间:2020-07-28 08:58:25

标签: c# .net-core gmail google-api-dotnet-client

有人知道我如何通过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​​密钥发送电子邮件的文档。

1 个答案:

答案 0 :(得分:0)

使用google .net客户端库的Gmail API路由。

如果您使用的是gsuite域电子邮件地址,则可以使用服务帐户。让我知道您是否需要一些代码。

否则,您将需要在本地授权代码保存刷新令牌后运行代码,然后将Idatastore设置为使用传递给它的刷新令牌。只要定期使用刷新令牌,它就不会过期。并不是说它不能,但是如果它失败了,它不应该需要一点时间,只是为其生成一个新的刷新令牌,它将重新启动并运行。

smtp路线

如果您想使用smtp,可能需要解决Xoauth2,但我不知道与之兼容的C#开箱即用,并且Google .net客户端库不适用于smpt服务器。