无法获取IIS拾取目录

use*_*635 9 asp.net smtp

我一直在使用Smtp服务器127.0.0.1.我得到的错误:

System.Net.Mail.SmtpException: Cannot get IIS pickup directory.at System.Net.Mail.IisPickupDirectory.GetPickupDirectory().

当从ASP网页发送电子邮件时发生此错误.但是从ASP.NET页面发送电子邮件,未发生错误.Plz的帮助.

Luk*_*rny 14

不幸的是,在尝试确定IIS/SMTP拾取目录的位置时发生任何类型的问题时会引发此异常.常见原因是缺少IIS SMTP服务.

如果使用System.Net.Mail.SmtpClient发送邮件,请尝试手动设置拾取目录:

// C#
var client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
client.PickupDirectoryLocation = ...;
client.Send(...);
Run Code Online (Sandbox Code Playgroud)

或者在ASP.NET的Web.config中设置它:

<configuration>
    <system.net>
        <mailSettings>
            <smtp deliveryMethod="SpecifiedPickupDirectory">
                <specifiedPickupDirectory
                    pickupDirectoryLocation="..." />
                <network defaultCredentials="false" />
            </smtp>
        </mailSettings>
    </system.net>
</configuration> 
Run Code Online (Sandbox Code Playgroud)

或者,使用SmtpDeliveryMethod.Network方法代替并将HostPort属性发送到SMTP服务器.

更多信息:http://forums.iis.net/p/1149338/1869548.aspx


Jon*_*noW 10

拾取目录存储在II6元数据库中,因此如果您的网络应用程序运行的帐户无法访问所需的节点,则可能会抛出此错误(我自己).元数据库权限与文件权限分开,因此您可以使用Metabase explorer进行探索:

http://www.microsoft.com/downloads/details.aspx?FamilyID=56fc92ee-a71a-4c73-b628-ade629c89499&displaylang=en (它是IIS资源工具包的一部分)

这些节点需要具有给您的Web应用程序用户的读取权限:\ LM\SmtpSvc\LM\SmtpSvc\1