首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Windows Server 2008上的IIS 7下设置SMTP

在Windows Server 2008上的IIS 7下设置SMTP
EN

Stack Overflow用户
提问于 2008-10-22 16:47:52
回答 8查看 89.4K关注 0票数 16

网站最初是在IIS6下创建的,网站在那里运行得很好。现在,在迁移到运行W2K8S的新服务器后,除了来自网站的邮件传递之外,一切都在IIS7下工作得很好。

在网上简单地搜索了一下,看看有没有人有好的解决方案,但没有用…在微软自己的支持网站上,甚至没有一丝希望。

以下是到目前为止在新的W2K8S机器上采取的步骤:

在IIS7管理器中,SMTP在服务器下为站点本身添加了Manager

  • Enabled电子邮件功能,以将电子邮件传送到服务器本地主机,在IIS7管理器中为根站点添加了unsuccessful
  • Enabled SMTP电子邮件(不确定是否需要打开才能启用站点)以将电子邮件传送到服务器本地主机,未成功的

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

IIS 7安装测试是在匿名和Windows身份验证的情况下执行的--无论哪种方式都没有成功。

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

看了手册,也没什么好运气的。:-/

EN

回答 8

Stack Overflow用户

发布于 2009-01-13 08:16:47

我也面临着同样的问题。

我偶然发现了这个链接http://www.frontpagewebmaster.com/m-215289/tm.htm

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

在我的例子中,我通过赋予"NETWORK SERVICE“用户对"Pickup”文件夹的权限来解决问题。

希望这能有所帮助..。

票数 2
EN

Stack Overflow用户

发布于 2011-03-24 11:58:44

好了,这篇文章说“赋予网络用户对拾取文件夹的写权限”,它终于起作用了。我所做的是:

  1. 除非您正在运行exchange server,否则需要使用“智能主机”。我使用的是Gmail帐户,Gmail允许SMTP forwarding.
  2. You可以使用Windows身份验证来保证SMTP服务器和IIS7配置的安全性。
  3. 第一步,在你的网页中设置传递方法= "network“,并让你的智能主机独立于SMTP服务器进行配置。

SmtpClient客户端=新密码(“smtp.gmail.com”,587);client.DeliveryMethod = SmtpDeliveryMethod.Network;client.UseDefaultCredentials = false;//使用您的智能主机登录client.Credentials =新密码(“xxxxx@gmail.com”,“NetworkCredential”);client.EnableSsl = true;

这将直接发送电子邮件并绕过您的SMTP服务器。

  • 第二步,一旦您有了工作,编写一个示例windows应用程序来使用您的SMTP服务器独立于您的网页,并使其工作。

SmtpClient客户端=新SmtpClient(“您的服务器ip",25);client.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;client.EnableSsl = false;//您不能将ssl与拾取文件夹client.UseDefaultCredentials =true一起使用;//使用windows凭据

这将绕过您的网页,并确保您已配置您的SMTP服务器properly.

  • Finally,让您的网页工作,通过设置共享您的拾取文件夹,以允许写入访问NETWORK_SERVICE。将步骤3中的登录信息传输到您的SMTP设置中,将身份验证设置为集成安全性,然后将步骤4中的代码用于您的网页。
票数 1
EN

Stack Overflow用户

发布于 2013-01-05 00:55:06

我遇到了与这个老问题完全相同的问题。最后,我找到了一个解决方案。在我的例子中,操作系统是带有IIS7.5的W2008 R2,但我认为这无关紧要。

根本问题是,W2008 R2中的SMTP服务似乎是IIS的遗留部分。它与IIS 6.0管理工具一起安装,与IIS 7.X服务器并排安装。这导致了两个派生问题:

IIS 7.X对SMTP服务一无所知。如果将ASP.NET中的SMTP配置为使用PickupDirectoryFromIis,则会导致异常。因此,您不能使用此配置

代码语言:javascript
复制
<smtp deliveryMethod="PickupDirectoryFromIis" />

但是可以使用SpecifiedPickupDirectory来配置SMTP,您可以使用此配置

代码语言:javascript
复制
<smtp deliveryMethod="SpecifiedPickupDirectory">
    <specifiedPickupDirectory pickupDirectoryLocation="C:\inetpub\mailroot\Pickup"  />
</smtp>

如果您以这种方式配置分拣目录,您可能会遇到第二类问题: IIS6和IIS7.X具有不同的安全系统。IIS 7.X引入了具有应用程序池标识的集成安全性。IIS 6.0及其SMTP服务不知道这一点。因此,您必须授予IIS_IUSRS对拾取文件夹的写入权限。在我的配置中,拾取文件夹是C:\inetpub\mailroot\pickup。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/226655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档