В конфигурации моего (веб-приложения) System.Net.Mail
пространство имен в настоящее время настроено для использования каталога получения почты IIS:
<smtp deliveryMethod="PickupDirectoryFromIis"/>
Мое приложение предполагает идентичность фактического пользователя, и похоже, что почту можно отправлять только при входе в систему как кто-то из группы администраторов. Когда не администраторы запускают какое-либо действие, которое использует System.Net.Mail.SmtpClient
для отправки почты они получают сообщение об ошибке, в котором говорится, что .NET не может получить каталог раскладки из IIS.
Изменение web.config на использование «SpecifiedPickupDirectory» только частично решает проблему, так как создает новую проблему: пользователя просят повторно пройти аутентификацию при попытке отправить почту. Очевидно, что пользователям, не являющимся администраторами, запрещено писать в каталог раскладки.
Каким «правильным» способом решить эту проблему? Я мог бы вручную изменить ACL для каталога раскладки, чтобы предоставить права на запись для группы «Пользователи», но это не кажется очень элегантным / безопасным. Кроме того, я бы предпочел по возможности оставить параметр «PickupDirectoryFromIis». Есть ли способ контролировать, кому разрешено ставить почту в очередь через IIS?
Не имея других доступных решений, я просто сделал папку подбора доступной для записи для группы, к которой принадлежат мои пользователи.