SmtpClient - отправлять на разные домены - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть SmtpClient, который я указал на почтовый сервер моей компании. Я могу успешно отправлять электронные письма на / с адреса этого домена.

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

Как я могу отправить электронное письмо пользователю другого домена? Каждый раз, когда я пытаюсь (используя мою электронную почту live.ca), я получаю следующую ошибку:

SmtpFailedRecipientsException - почтовый ящик недоступен. Ответ сервера: 5.7.1 Невозможно передать

C # код

SmtpClient mailClient = new SmtpClient();
MailMessage email = new MailMessage
{
    Subject = "Testing Mail",
    Body = "Testing Mail",
    From = new MailAddress("myAddress@myCompany.com")
};
email.To.Add(new MailAddress("myAddress@live.ca"));
mailClient.Send(email);

Код Web.config

  <system.net>
<mailSettings>
  <smtp>
    <network host="mail.myCompany.com" port="25" userName="myAddress@myCompany.com" password="myPassword" defaultCredentials="false"/>
  </smtp>
</mailSettings>

Обновление:

У меня все работает, используя следующие методы:

1) Web.config

<network host="mail.myCompany.com" port="25" userName="myNetworkUsername" password="myPassword" defaultCredentials="false" />

2) код C #

mailClient.Credentials = new NetworkCredential("myNetworkUsername", "myPassword");
// or
mailClient.Credentials = CredentialCache.DefaultNetworkCredentials;

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

Я подумываю о создании учетной записи по умолчанию для обработки почты приложения и внесении имени пользователя / pw в веб-конфигурацию, но это не кажется самой безопасной практикой. Я все еще ищу альтернативы.

Обновление:

Код перестал работать, когда моя компания переключила нашего провайдера на Shaw. Мы думаем, что Шоу может блокировать порт на нашем сервере Exchange.

1 Ответ

0 голосов
/ 28 февраля 2012

Вот статья, которая объясняет использование порта 587 для отправки электронных писем за пределы доменов: http://mostlygeek.com/tech/smtp-on-port-587

...