Тайм-аут SmtpClient в Интернете.Работает в .EXE - PullRequest
0 голосов
/ 23 марта 2012

Помощь!

У меня проблемы с отправкой электронной почты из веб-приложения .NET на моей локальной машине для разработки. У меня есть код, который работает из исполняемого файла командной строки .NET.Однако запуск одного и того же кода всегда «истекает» из веб-приложения.

Я использую 64-битную Windows 7 с Windows 7 pro (IIS7) и Visual Studio 2010.

Я отключил все брандмауэры и т. Д.

Работает в командной строке.Не работает (время ожидания при отправке вызова) на странице ASPX в веб-приложении.

public static void Main(string[] args)
{
    string strSmtpServer = "theserver";
    string strSmtpUser = "theuser";
    string strSmtpPassword = "thepasswrd";

    SmtpClient client = new SmtpClient( strSmtpServer);
    client.Credentials = new NetworkCredential( strSmtpUser, strSmtpPassword );

    // Specify the e-mail sender.
    MailAddress from = new MailAddress("customersupport@serenitynow.com" );
    // Set destinations for the e-mail message.
    MailAddress to = new MailAddress("iam@serenitynow.com");
    // Specify the message content.
    MailMessage message = new MailMessage(from, to);
    message.IsBodyHtml = true;
    message.Body = "This is a test e-mail <b>message</b> sent by an application. ";


    message.BodyEncoding =  System.Text.Encoding.UTF8;
    message.Subject = "Mail Test!";
    message.SubjectEncoding = System.Text.Encoding.UTF8;

    // Time out exception thrown here on the send call.
    // Waits 60 seconds or so.
    client.Send(message, userState);
    message.Dispose();

}

Ответы [ 2 ]

0 голосов
/ 23 марта 2012

ОК, я понял это.В IIS я обновил пул приложений.Из коробки он был настроен с «ApplicationPoolIdentity», я переключил его на учетную запись «LocalSystem», и Presto, он работает.Веб-страница может отправлять электронную почту сейчас.

0 голосов
/ 23 марта 2012

Это может быть несколько разных проблем, в том числе проблемы с регистрацией DNS и проблемы с брандмауэром (даже если кажется, что вы их отключили).

Сначала на веб-машине откройте командную строку ивведите 'nslookup theserver', где theserver - это то же значение, которое вы используете в своем приложении.Если вы не получили IP-адрес, то эту проблему вам нужно решить.

Если вы получили IP-адрес, попробуйте проверить связь с сервером, чтобы узнать, доступен ли он с вашего компьютера.Если это не так, это проблема, которую необходимо решить.

Если SMTP-сервер является проверяемым, попробуйте подключиться к серверу через telneting, используя порт 25. Если вы не можете сделать это, существует брандмауэр или другой механизм, которыйпредотвращение доступа.

Если это внешний SMTP-сервер, некоторые интернет-провайдеры блокируют SMTP-службы на порту 25, если он не направляется на свои SMTP-серверы.

Если вы можете, и SMTP-сервер поддерживает это, я быНастоятельно рекомендуем переключиться на порт 587 или 465, чтобы избежать проблем с блокировкой. Здесь - это удобный справочник с дополнительной информацией.

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