我们已经测试运行新系统一段时间了,并将电子邮件创建到文件夹中,这样它们就不会意外发送给客户。现在我们已经打开实时电子邮件发送功能,但我们遇到了发送问题。
我正在使用 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="[email protected] /cdn-cgi/l/email-protection">
<specifiedPickupDirectory pickupDirectoryLocation="" />
<network defaultCredentials="false" host="smtp.office365.com" password="secret" port="587" userName="Clien[email protected] /cdn-cgi/l/email-protection" />
</smtp>
</mailSettings>
我的假设是需要将enableSsl =“true”添加到网络线路,但是当我这样做并尝试转到IIS中站点的SMTP电子邮件部分时,我收到错误:
无法识别的属性“enableSsl”
我对 IIS 不太热衷,但我检查过应用程序池及其 .NET CLR 版本是 4.0.30319。我还检查了服务器上是否安装了.NET v4.5。
这让我感到困惑,我希望我不必将我的代码完全更改为允许我在此时指定 SSL 的方法。
在这里回答我自己的问题,基本上答案是:“不要相信错误消息”。在我尝试的所有配置中,当错误消息告诉我这是不可接受的时,我相信它。不过,我还是尝试了,它在发送时使用了enableSsl属性,这使得与Office 365的连接能够成功。
稍微令人恼火的 IIS bug,一周后我就会忘记,但现在却非常烦人。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)