SMTP-сервер игнорируется в приложении ASP.NET MVC - PullRequest
1 голос
/ 09 марта 2011

В настоящее время я работаю над прототипом MVC, в котором я хочу скомпилировать и отправить электронное письмо из формы в каталог в виде файла eml по сравнению с использованием физического SMTP-сервера.Хотя это и не критично, проблема теперь пробудила мое любопытство по поводу «почему это не работает»

В моем файле web.config у меня есть следующие настройки

<system.net>

<mailSettings>
  <smtp deliveryMethod="SpecifiedPickupDirectory">
    <network host="ignored"/>
    <specifiedPickupDirectory pickupDirectoryLocation="c:\email" />
  </smtp>
</mailSettings>

Однако в моем веб-приложении всякий раз, когда я вызываю метод sendmail, я получаю исключение, что хост smtp не был найден.Я ожидал, что smtpClient сгенерирует файл eml локально.Или я полностью упускаю точку SpecifiedPickupDirectory, и мне нужно вызвать поездку на SMTP-сервер?

заранее спасибо

1 Ответ

1 голос
/ 09 марта 2011

Для меня прекрасно работает следующее (локально не установлен SMTP-сервер):

  1. Создание нового проекта ASP.NET MVC 2 с использованием шаблона по умолчанию
  2. В web.config положить:

    <system.net>
        <mailSettings>
            <smtp deliveryMethod="SpecifiedPickupDirectory">
                <network host="ignored"/>
                <specifiedPickupDirectory pickupDirectoryLocation="c:\email" />
            </smtp>
        </mailSettings>
    </system.net>
    
  3. В действии Index HomeController поставить:

    public ActionResult Index()
    {
        // If you are using .NET 3.5 or earlier the 
        // SmtpClient class doesn't implement IDisposable
        // so you might need to remove the "using" statement
        using (var client = new SmtpClient())
        {
            var mailMessage = new MailMessage("from@foo.com", "to@foo.com");
            mailMessage.Body = "Hello World";
            client.Send(mailMessage);
        }
        return View();
    }
    
  4. Запустить приложение

  5. Файл eml создается по адресу c: \ email
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...