由网友(美梦被尿惊醒)分享简介:我可以为ASP.NET核心Web应用程序中的"忘记密码"功能发送无回复邮件吗?我无法在我的Web应用程序中使用SMTP。是否可以使用Gmail API发送忘记密码邮件的无回复邮件?服务帐户或Google oauth2.0在这里能帮上什么忙吗?推荐答案只有在您拥有Google工作区域帐户的情况下,Gmail API...我可以为ASP.NET核心Web应用程序中的"忘记密码"功能发送无回复邮件吗?
我无法在我的Web应用程序中使用SMTP。是否可以使用Gmail API发送忘记密码邮件的无回复邮件?
服务帐户或Google oauth2.0在这里能帮上什么忙吗?
推荐答案
只有在您拥有Google工作区域帐户的情况下,Gmail API才能使用服务帐户。
您需要将域范围delegation设置为域上的用户,然后服务帐户将能够代表其发送电子邮件。我想在这种情况下,创建一个名为no-回复的用户将是一种选择。Code是标准服务帐户授权码,添加了要委派给的gsuiteUser。
string ApplicationName = "Gmail API .NET Quickstart";
const string serviceAccount = "XXXXX@XXXX-api.iam.gserviceaccount.com";
var certificate = new X509Certificate2(@"cXXXX-api-ed4859a67674.p12", "notasecret", X509KeyStorageFlags.Exportable);
var gsuiteUser = "domainUser@XXXX.com";
var serviceAccountCredentialInitializer = new ServiceAccountCredential.Initializer(serviceAccount)
{
User = gsuiteUser,
Scopes = new[] { GmailService.Scope.Gmail }
}.FromCertificate(certificate);
var credential = new ServiceAccountCredential(serviceAccountCredentialInitializer);
if (!credential.RequestAccessTokenAsync(CancellationToken.None).Result)
throw new InvalidOperationException("Access token failed.");
var service = new GmailService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
应在您的网站用户本身上创建忘记密码功能。我会假设它有自己的域和邮件服务器。您应该使用它,而不是Gmail API。相关推荐
最新文章