Как я могу отключить ретрансляцию и использовать свой код в качестве аутентифицированного клиента? - PullRequest
0 голосов
/ 07 февраля 2012

Так что я получаю много сообщений об этой ошибке.Но большинство имеет дело с IIS.

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

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

Я говорил с администратором Exchange, и он не собирается открывать почтовый сервер для ретрансляции илиПозвольте моему серверу сделать это.Поэтому я хотел бы, чтобы мой код C # отправлял письмо как обычный аутентифицированный клиент, как если бы это был внешний вид.

Мой код ниже работает, если я отправляю его кому-то из моего домена, но не если получатель находится за пределами домена.

Как я могу отключить ретрансляцию и использовать свой код в качестве аутентифицированного клиента, чтобы я мог отправлять электронные письма людям за пределами моего домена?

КОД:

static void Main(string[] args)
{
    Console.WriteLine("Sending Mail...");
    try
    {
        SmtpClient _SMTPServer = new SmtpClient("companymailserver", 587);
        _SMTPServer.Credentials = new System.Net.NetworkCredential("myusername", "mypassword");

        MailMessage _mailMessage = new MailMessage();
        _mailMessage.To.Add(new MailAddress("someone@gmail.com"));
        _mailMessage.From = new MailAddress("myself@mycompanydomain.com");
        _mailMessage.IsBodyHtml = false;
        _mailMessage.Subject = "This is a test";
        _mailMessage.Body = "This is the body";

        _SMTPServer.Send(_mailMessage);
    }
    catch (Exception err)
    {
        Console.WriteLine("error: " + err.Message);
    }
    Console.WriteLine("Press any key to continue...");
    Console.Read();
} 

ОБНОВЛЕНИЕ # 1

Странно, что независимо от того, какие учетные данные я ставлю, я получаю ту же ошибку «Невозможно передать».Как будто он по умолчанию ретранслирует и игнорирует мои настройки SmtpClient.

1 Ответ

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

Я предполагаю, что аутентификация не удалась. Попробуйте включить доменное имя.

_SMTPServer.Credentials = 
    new System.Net.NetworkCredential("myusername", "mypassword", "mydomain");

Кроме того, убедитесь, что для UseDefaultCredentials установлено значение false

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