如何解决Gmail SMTP XOAUTH2 错误:JWT 已过期
昨天我创建了一个 ClientID 和 Client Secret(使用 this 指南)来验证桌面应用程序 (C#/.NET) 以从 Gmail 帐户发送电子邮件。
public static async System.Threading.Tasks.Task<int> SendEmailOAuth2Async(string sFromMailAddress,string sClientID,string sClientSecret)
{
var credential = await GoogleWebAuthorizationbroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = sClientID,ClientSecret = sClientSecret
},new[] { "email","profile","https://mail.google.com/" },"user",CancellationToken.None
) ;
var jwtPayload = GoogleJsonWebSignature.ValidateAsync(credential.Token.IdToken).Result;
var username = jwtPayload.Email;
var mailMessage = new MimeMessage();
mailMessage.From.Add(new MailBoxAddress("from name",sFromMailAddress));
mailMessage.To.Add(new MailBoxAddress("to name","someone@outlook.com"));
mailMessage.Subject = "Automated Mail with OAuth";
mailMessage.Body = new TextPart("plain")
{
Text = "Hello"
};
using (var client = new SmtpClient())
{
client.Connect("smtp.gmail.com",587,SecureSocketoptions.StartTls);
// use the access token
var oauth2 = new SaslMechanismOAuth2(sFromMailAddress,credential.Token.Accesstoken);
client.Authenticate(oauth2);
client.Send(mailMessage);
client.disconnect(true);
}
return 0;
}
System.AggregateException: '发生一个或多个错误。 (JWT 有 已过期。)'
我是 OAuth 和令牌的新手。我该怎么做才能让它再次工作?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。