kat*_*tit 9 .net c# smtp amazon-web-services
我正在尝试使用.NET内置的Amazon SES新SMTP服务发送电子邮件 SmtpClient
码:
var emailClient = new SmtpClient("email-smtp.us-east-1.amazonaws.com", 465);
emailClient.EnableSsl = true;
....
emailClient.Send(message);
Run Code Online (Sandbox Code Playgroud)
我得到一个例外:
无法从传输连接中读取数据:net_io_connectionclosed
Google表示此错误意味着我无法访问SMTP服务器.它们需要TLS,我通过"EnableSsl"属性实现了它.
有人知道我需要调整我的代码才能使它工作吗?
编辑:
我想我会关闭这个问题.不,用SmtpClient做我想做的事是不可能的
可以通过指定端口587来执行此操作.
<system.net>
<mailSettings>
<smtp deliveryMethod="Network">
<network enableSsl="true" port="587" host="email-smtp.us-east-1.amazonaws.com" password="[password]" userName="[username]"/>
</smtp>
</mailSettings>
</system.net>
Run Code Online (Sandbox Code Playgroud)
使用它作为配置,您可以像平常一样使用SmtpClient
var client = new SmtpClient();
var message = new MailMessage(fromemail, recipient, subject, body);
client.Send(message);
Run Code Online (Sandbox Code Playgroud)
根据亚马逊 - 它不像以前那样受到支持.
https://forums.aws.amazon.com/thread.jspa?messageID=302112鰠
.NET电子邮件TLS库仅支持SES今天不支持的STARTTLS.我们支持所谓的"TLS Wrapper"或SMTPS身份验证.我可以理解这会令人沮丧,但您可以使用OpenSSL作为解决方法并通过计算机上运行的软件进行隧道,以使用.NET对我们的SMTP端点进行编程.