我们已经在测试中运行了一段时间的新系统,并将电子邮件创建到一个文件夹中,这样它们就不会意外地发送给客户。现在我们打开了实时电子邮件,我们遇到了发送问题。
我正在使用 ActionMailer.NET,创建和发送电子邮件的代码如下。我不会包括视图:
EmailResult x = new EmailController().EmailWorkOrderForApprovalToClient(model);
System.Net.Mail.Attachment file = new System.Net.Mail.Attachment(FilePath);
x.Mail.Attachments.Add(file);
x.Deliver();
这给出了错误
SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.7.57 SMTP;在 MAIL FROM 期间,客户端未通过身份验证发送匿名邮件
web.config 如下所示:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="ClientServices@topupconsultants.com">
<specifiedPickupDirectory pickupDirectoryLocation="" />
<network defaultCredentials="false" host="smtp.office365.com" password="secret" port="587" userName="ClientServices@myco.com" />
</smtp>
</mailSettings>
我的假设是 enableSsl="true" 需要添加到网络线路,但是当我这样做并尝试转到 IIS 中站点的 SMTP 电子邮件部分时,我收到错误:
无法识别的属性“enableSsl”
我对 IIS 不是很感兴趣,但我检查了应用程序池及其 .NET CLR 版本是 4.0.30319。我还检查了服务器上是否安装了 .NET v4.5。
这让我感到困惑,我希望我不必将我的代码完全更改为允许我在那时指定 SSL 的方法。