我正在使用 Windows Server 2008 R2 和 IIS 7.5.7600 所以我已经安装了 SMTP 服务并且它正在运行。我已经使用以下 powershell 脚本测试了它是否可以工作:
$emailFrom = "user@yourdomain.com"
$emailTo = "user@yourdomain.com"
$subject = "your subject"
$body = "your body"
$smtpServer = "your smtp server"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)
电子邮件使用“localhost”作为服务器发送。
但是,在配置 WCF 服务的 web.config 之后:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="user@yourdomain.com">
<network
host="localhost"
port="25"
/>
</smtp>
</mailSettings>
</system.net>
当我的代码调用时,我收到一个通用的无意义错误:
var mail = new MailMessage();
mail.To.Add("user@yourdomain.com");
mail.Subject = "[Smtp Client] TEST";
mail.Body = "TEST";
mail.IsBodyHtml = false;
var smtpMail = new SmtpClient();
smtpMail.Send(mail);
我得到:
Failure sending mail.
at System.Net.Mail.SmtpClient.Send(MailMessage message)
我不知道还要检查什么?是的,我已经在服务器上安装了应用程序服务器角色。是的,WCF 服务工作正常,我的所有其他代码都按预期运行,只有电子邮件发送失败。似乎 IIS 和本地 SMTP 中继之间存在一些断开连接,但我找不到任何讨论这个特定问题的内容(只有那些无法启动和运行 smtp 或无法整理他们的配置的人) .
感谢您的时间和关注。