【问题标题】:SmtpException: Cannot get IIS pickup directorySmtpException: 无法获取 IIS 拾取目录
【发布时间】:2016-11-17 08:52:44
【问题描述】:

我正在尝试从我的 mvc 应用程序发送电子邮件。以下是我正在使用的代码的一部分:

SmtpClient smtpClient = new SmtpClient();
smtpClient.DeliveryMethod = SmtpDeliveryMethod.PickupDirectoryFromIis;
smtpClient.UseDefaultCredentials = true;
smtpClient.Send(message);

以上代码报错:

无法获取 IIS 拾取目录 SmtpException。

但如果我以管理员身份运行我的 Visual Studio,电子邮件会成功发送。

如果我理解正确,问题在于访问权限,但我就是不知道是什么。 如果相关,则该应用程序是具有 Windows 身份验证的 Intranet 应用程序。

【问题讨论】:

  • 你走得越远,就越有理由始终以管理员身份运行 Visual Studio。调试 ASP.NET 网站和使用 IIS 都是其中的原因。它已成为我在新的开发机器上首先要确保的事情之一。有关需要管理员权限的功能/操作列表,请参阅此页面:msdn.microsoft.com/en-us/library/jj662724.aspx

标签: c# asp.net-mvc-4 iis iis-7.5


【解决方案1】:

尝试手动设置拾取目录:

// C#

client.PickupDirectoryLocation = ...;

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

<configuration>
    <system.net>
        <mailSettings>
            <smtp deliveryMethod="SpecifiedPickupDirectory">
                <specifiedPickupDirectory
                    pickupDirectoryLocation="..." />
                <network defaultCredentials="false" />
            </smtp>
        </mailSettings>
    </system.net>
</configuration> 

【讨论】:

  • 出于好奇,我为什么不必为管理员手动设置拾取目录。我的意思是为什么 iis 不能为非管理员用户获取拾取目录。
  • 对不起,如果这很蹩脚。第一个应用程序,对这一切都是陌生的。
猜你喜欢
  • 2011-01-12
  • 2011-06-29
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多