问题描述
asp.net核心api使用aws ses smtp凭据发送邮件
Amazon.SimpleEmail.AmazonSimpleEmailServiceException:我们计算出的请求签名与您提供的签名不匹配。检查您的AWS Secret Access密钥和签名方法。有关详细信息,请查阅服务文档。
这里是我的控制器
public async Task<bool> SendEmail()
{
var UserName = _emailConfiguration.UserName;
var Password = _emailConfiguration.Password;
var port = _emailConfiguration.port;
var smtpserver = _emailConfiguration.smtpServer;
using (var ses = new AmazonSimpleEmailServiceClient(UserName,Password,RegionEndpoint.USEast2)
{
var sendResult = await ses.SendEmailAsync(new SendEmailRequest
{
Source = "mail",Destination = new Destination { ToAddresses = new List<string> { "reciver mail" } },Message = new Amazon.SimpleEmail.Model.Message
{
Subject = new Amazon.SimpleEmail.Model.Content("Test Mail"),Body = new Body { Text = new Content("Body Content text mail") }
}
});
using (var client = new SmtpClient())
try
{
client.Connect(_emailConfiguration.smtpServer,_emailConfiguration.port,true);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(_emailConfiguration.UserName,_emailConfiguration.Password);
}
catch
{
throw;
}
finally
{
client.disconnect(true);
client.dispose();
}
return sendResult.HttpStatusCode == HttpStatusCode.OK;
}
这是我的appsetting.json
"From": "email","smtpServer": "email-smtp.us-east-2.amazonaws.com","port": 465,"UserName": "myusername","Password": "mykey"
},
电子邮件配置类
namespace EmailService
{
public class EmailConfiguration
{
public string From { get; set; }
public string smtpServer { get; set; }
public int port { get; set; }
public string UserName { get; set; }
public string Password { get; set; }
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)