【发布时间】:2022-02-25 19:04:35
【问题描述】:
我正在尝试使用 Amazon SES 发送电子邮件。
我可以使用我们的本地 SMTP 服务器发送电子邮件,也可以使用亚马逊网站提供的示例发送电子邮件。
我需要在电子邮件中发送“发件人地址”和“收件人地址”名称。我无法使用 Amazon SDK 中提供的 SendEmailRequest 类来执行此操作,因为WithSource(toaddress)、WithDestination(destinationaddress) 和WithReplyToAddresses(replytoaddress) 方法没有这样的重载,所以我不能在这里从发送者 7 接收者传递名称,所以我是使用亚马逊配置发送邮件的常规方法。
我尝试了通过代码硬编码以及通过文件进行配置来传递凭据的两种方式,但在使用端口 587 时,上述两种方式仍然出现相同的错误,
“SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:需要身份验证”
尝试使用 465 端口时出现此错误, “发送电子邮件失败”
当尝试使用 IP 地址而不是亚马逊服务器的主机地址时出现此错误。
“根据验证程序,远程证书无效。”
请建议我在这里缺少什么,
这是我的代码,
MailMessage mail = new MailMessage();
mail.From = new System.Net.Mail.MailAddress(FromEmail, FromName);
SmtpClient smtp = new SmtpClient("email-smtp.us-east-1.amazonaws.com", 587);
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
smtp.UseDefaultCredentials = false;
smtp.EnableSsl = true;
smtp.Credentials = new NetworkCredential(AWSAccessKey, AWSSecretKey);
//recipient address
mail.To.Add(new MailAddress(ToEmail, ToName));
//Formatted mail body
mail.IsBodyHtml = true;
mail.Body = strBody;
smtp.Send(mail);
提前致谢..!!!
【问题讨论】:
标签: c# .net amazon-ses