ASP MVC: отправка электронной почты - PullRequest
4 голосов
/ 30 апреля 2010

Я новичок в платформе .NET. И в настоящее время я изучаю ASP.NET MVC.

Я хочу отправить электронное письмо из моей программы, и у меня есть следующий код:

public void sendVerrificationEmail()
    {
        //create the mail message
        MailMessage mail = new MailMessage();

        //set the addresses
        mail.From = new MailAddress("");
        mail.To.Add("");

        //set the content
        mail.Subject = "This is an email";
        mail.Body = "this is a sample body with html in it. <b>This is bold</b> <font color=#336699>This is blue</font>";
        mail.IsBodyHtml = true;

        //send the message
        SmtpClient smtp = new SmtpClient("127.0.0.1");
        smtp.Send(mail);
    }

Теперь, когда я выполню этот код, я получу следующее исключение:

System.Net.Sockets.SocketException: No connection could be made because the target machine actively refused it 127.0.0.1:25

Теперь я очень плохо знаком с менеджером IIS и прочим. так что там, наверное, что-то не так.

Нужно ли устанавливать виртуальный SMTP-сервер или что-то в этом роде? В настоящее время у меня есть следующие настройки:

http://img153.imageshack.us/img153/695/capture2p.pnghttp://img153.imageshack.us/img153/695/capture2p.png

Я искал несколько часов, но не могу найти работающего решения.

Помощь будет оценена!

Ответы [ 3 ]

6 голосов
/ 30 апреля 2010

как вы звоните

SmtpClient smtp = new SmtpClient("127.0.0.1"); 

На локальном хосте должен быть SMTP-сервер. Если его там нет, вы можете использовать MailServer вашей сети.

для целей тестирования вы можете использовать

<system.net>
<mailSettings>
      <smtp from="Test@test.com" deliveryMethod="SpecifiedPickupDirectory">
        <network host="127.0.0.1" port="25" userName="userID" password="*****" defaultCredentials="true" />
        <specifiedPickupDirectory pickupDirectoryLocation="c:\Temp\mail\"/>
      </smtp>
    </mailSettings>
  </system.net>

Это сохранит ваши электронные письма в C: \ temp \ mail без отправки.

0 голосов
/ 30 апреля 2010

Я обычно отправляю почту через SMTP-сервис GMail от localhost. У меня есть другая конфигурация, когда проект загружен на мой веб-хост.

Вот пример: http://www.shabdar.org/send-email-using-gmail-account-asp-net-csharp.html

0 голосов
/ 30 апреля 2010

Что ж, когда вы пытаетесь отправить электронное письмо службе SMTP, работающей на 127.0.0.1, на самом деле должен быть один запуск, чтобы принять электронную почту, или;)?

Ничего о диспетчере IIS - простоздравого смысла достаточно.

В основном:

  • НЕ устанавливайте службу SMTP для реле.Только не делайте этого.

  • Настройте службу smtp в конфигурации IIS - таким образом, она идет в ваш web.config и не кодируется жестко, возможно, во многих местах вашего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...