在我的(web)应用程序的configuration中, System.Net.Mail命名空间当前被configuration为使用IIS邮件拾取目录:
<smtp deliveryMethod="PickupDirectoryFromIis"/>
我的应用程序假定了实际用户的身份,并且看起来只有在以pipe理员组中的某个用户身份login时才允许发送邮件。 当非pipe理员触发某些使用System.Net.Mail.SmtpClient发送邮件的操作时,他们会收到一个错误消息,说明.NET无法从IIS获取提取目录。
更改web.config以使用“SpecifiedPickupDirectory”只能部分解决问题,因为它引入了一个新问题:在尝试发送邮件时,要求用户重新进行身份validation。 显然,非pipe理员不允许写入拾取目录。
解决这个问题的“正确”方法是什么? 我可以手动更改拾取目录的ACL以授予Users组的写入权限,但这看起来不太优雅/安全。 另外,如果可能,我宁愿保留“PickupDirectoryFromIis”设置。 有没有办法控制谁可以通过IIS排队邮件?
由于没有其他可用的解决scheme,我只是将拾取文件夹写入我的用户所属的组。