如何在Windows Server 2008上的IIS 7下设置SMTP?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (123)

网站最初是在IIS 6下开始的,网站在那里工作得很好。现在在重新部署到运行W2K8S的新服务器之后,除IIS 7以外,从网站发送邮件的所有内容都可以很好地工作。

在网上简单地研究一下,看看有没有人有很好的解决方案,但是没有用......对微软自己的支持网站来说,甚至没有一丝希望。

以下是在新的W2K8S机箱上采取的步骤:

  • 在服务器管理器下添加SMTP功能
  • 在IIS 7管理器中为站点本身启用SMTP电子邮件以将电子邮件传递到SMTP服务器本地主机,但不成功
  • 为IIS 7管理器中的根站点启用SMTP电子邮件(不确定是否需要启用站点)才能将电子邮件传递到SMTP服务器本地主机,但不成功

在失败这些基本设置后,我想确保实际上我可以从服务器的端口25进行通信。并且,我可以成功地从/到相关服务器的telnet到端口25上的测试电子邮件,获得HELO等。所以我不相信这是一个防火墙配置问题。

IIS 7安装测试使用匿名和Windows身份验证进行 - 无论哪种方式都没有运气。

手动检查Web配置文件,它反映服务器使用本地主机的正确条目。

提问于
用户回答回答于

OK,对于说“给网络用户对拾取文件夹的写入权限”的帖子它终于起作用了。我所做的是:

  1. 除非正在运行交换服务器,否则需要使用“智能主机”。我使用的是Gmail帐户,Gmail允许SMTP转发。
  2. 可以使用Windows身份验证来确保SMTP服务器和IIS7配置设置的安全性。
  3. 第一步,在网页中设置交付方式= “网络”,并让智能主机独立于SMTP服务器进行配置。 SmtpClient client = new SmtpClient("smtp.gmail.com", 587); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; // use your smart host login client.Credentials = new NetworkCredential("xxxxx@gmail.com", "password"); client.EnableSsl = true; 这将直接发送电子邮件并绕过SMTP服务器。
  4. 第二步,一旦你有这个工作,写一个示例Windows应用程序使用SMTP服务器独立于网页,并得到它的工作。 SmtpClient client = new SmtpClient("your server ip", 25); client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis; client.EnableSsl = false; // you can't use ssl with a pickup folder client.UseDefaultCredentials = true; // use windows credentials 这将绕过网页,并确保SMTP服务器配置正确。
  5. 最后,通过在拾取文件夹上设置共享以允许写入访问,让网页工作NETWORK_SERVICE。将步骤3中的登录信息传输到SMTP设置中,将身份验证设置为集成安全性,并在步骤4中将网页用于代码。
用户回答回答于

我面临同样的问题。

我遇到了这个链接http://www.frontpagewebmaster.com/m-215289/tm.htm

我能够解决这个问题。转到此链接的最后一篇文章。

在我的情况下,我通过将“NETWORK SERVICE”用户权限授予“Pickup”文件夹来解决问题。

扫码关注云+社区

领取腾讯云代金券