Как я могу отправить местную электронную почту, используя обмен с asp.net? - PullRequest
1 голос
/ 17 февраля 2009

У меня есть проект, который должен отправлять уведомления для сотрудников по локальной электронной почте. Я использую класс SmtpClient для отправки электронной почты, но он не работает! вот код:

    MailMessage message = new MailMessage();

    message.From = new MailAddress("localmail1@company.com");
    message.To.Add(new MailAddress("localmail2@company.com"));
    message.Subject = "Sending mail";
    message.Body = "Check sending email by Exchange from asp.net code <> ";

    SmtpClient client = new SmtpClient("ExchangeDNS", 25);

    try
    {
        client.Send(message);
    }
    catch (Exception exc)
    {
        Label1.Text = exc.Message.ToString();
    }  

Когда я нажимаю кнопки, это дает мне SmtpException с сообщением: Failure sending mail.

Примечание: мы используем сервер Exchange.

Как я могу это решить?

Ответы [ 3 ]

4 голосов
/ 17 февраля 2009

Используйте полное имя для вашего сервера, например, exchangeDNS.example.com. Если это не сработает, попробуйте IP-адрес. Вы можете вручную подключиться к порту 25 на сервере Exchange, просто чтобы посмотреть, возможно ли это. Также проверьте, требует ли ваш сервер аутентифицированного или зашифрованного соединения. Если это так, вам потребуется предоставить учетные данные вместе с запросом или изменить их на использование SSL и защищенного порта.

1 голос
/ 17 февраля 2009

Ваш код в порядке. Подозреваемой является конфигурация вашего сервера Exchange. Некоторые параметры для вашего администратора Exchange:

  • Разрешить анонимные SMTP-подключения.
  • Белый список IP-адресов, чтобы только ваши веб-серверы могли отправлять почту таким образом.
  • Создайте учетную запись Active Directory для веб-сервера, а затем выполните проверку подлинности вашего класса с использованием имени пользователя и пароля.

Если вы опубликуете более подробную информацию о конфигурации Exchange, я могу помочь, рискуя свести этот вопрос к вопросу «не связан с программированием».

1 голос
/ 17 февраля 2009

Предполагая, что у вас есть сервер и все необходимые учетные данные правильные (проверьте дважды), я бы попытался увеличить время ожидания на SMTP-клиенте .

...