Отправка электронной почты на запись MX через веб-сайт ASP.NET с использованием класса SmtpClient - PullRequest
2 голосов
/ 04 октября 2011

У меня недавно были проблемы с отправкой электронной почты из моего веб-приложения. Я продолжаю получать исключение соединения, отклоненное из почтового реле (и это всегда одно и то же почтовое реле). После некоторого подробного обсуждения с почтовой командой мне сказали, что я не использую запись MX для отправки почты. Тем не менее, я думаю, что я. MX-запись: mailhub-us.xxx.us.net . Вот код, который я использую для отправки электронных писем (ясно, что я ссылаюсь на адрес mailhub как на сервер)

    MailMessage msgMail = new MailMessage();
    ****Some code to populate msgMail
    SmtpClient smtpClient = new SmtpClient("mailhub-us.xxx.us.net");
    smtpClient.Send(msgMail);

Да, я знаю, что было бы лучше использовать <mailsettings> в web.config (то, что я узнал во время моего исследования и что я собираюсь исправить). Я проверил, чтобы записи MX были настроены на DNS с помощью nslookup, и для этой записи настроено 3 сервера.

Я немного запутался в этом моменте, потому что думал, что использую запись MX, и, следовательно, переходы на другой ресурс должны выполняться автоматически. Неужели я говорю это глупо или я что-то упускаю? Любая помощь в этом вопросе приветствуется.

1 Ответ

0 голосов
/ 04 октября 2011

В вашем web.config файле добавьте это

 <system.net> 
<mailSettings>
  <smtp from="fromemail">
    <network host="hostname" defaultCredentials="false"
    port="xx" userName="xxxx" password="xxx" />
  </smtp>
</mailSettings>

и в своем бэкэнд-коде вы можете сделать что-то вроде

       var message = new MailMessage();
        message.IsBodyHtml = true;
        message.From = new MailAddress(from);
        message.To.Add(to);
        message.Subject = subject;
        message.Body = msg;
        var client = new SmtpClient();
        client.Send(message);
...