我使用AWS SES发送邮件。代码非常简单
var textBody = new Content(body);
var message = new Message(new Content(subject), new Body(textBody));
var destination = new Destination { ToAddresses = (new List<string> { to }) };
using (var client = new AmazonSimpleEmailServiceClient())
{
client.SendEmail(new SendEmailRequest(from, destination, message));
}
但是这最后一行总是以异常&#34结束;类型&#39; Amazon.Runtime.AmazonServiceException&#39;发生在AWSSDK.Core.dll中但未在用户代码&#34;
中处理内部异常跟随&#34;请求已中止:无法创建SSL / TLS安全通道。&#34;
可能是什么原因?在其他地方,SES API按预期工作。
答案 0 :(得分:0)
找到解决方案。基于AWS文档,SimpleEmailService现在仅支持TLS 1.0加密。
http://docs.aws.amazon.com/ses/latest/DeveloperGuide/security.html
HTTP
如果您正在使用Amazon SES API(直接或通过AWS SDK),然后所有通信都通过亚马逊TLS加密 SES HTTPS端点。 Amazon SES HTTPS端点支持TLS 1.0 仅
现在唯一的方法 - 覆盖默认的SecurityProtocol,使用“Tls”加密通过Amazon SES提供商发送邮件
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls;
为什么Tls1不再被其他提供商使用 - read here