2015-11-20 15 views
2

Моего SmtpClient работает с следующими настройкамиSmtpClient работает с неправильными учетными

SmtpClient client = new SmtpClient(); 
client.Host = server; 
client.UseDefaultCredentials = false; 
client.Credentials = new NetworkCredential("username", "totallywrongpassword", "DOMAIN"); 

try 
{ 
    client.Send(message); 
} 
catch 
{ 
    // no exception is thrown, emails are send 
} 

я обеспечиваю недействительно, но электронные письма будут отправлены.

Что я настраиваю неправильно?

Сервер и клиент smtp находятся в одном и том же локальном домене.

+0

Ваш SMTP-сервер ...? – JOSEFtw

+1

Как говорится в ответе, это проблема с настройкой вашего SMTP-сервера, а не с кодом, который вы используете. Либо он настроен так, что он широко открыт (плохо для вас, отлично подходит для спамеров), либо он не требует аутентификации для компьютеров в локальном домене. Как вы исправите это зависит от сервера, который вы используете, и на него должен быть дан ответ на SuperUser. –

ответ

3

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

+0

Но я говорю SmptClient использовать предоставленные мной полномочия? Есть ли автоматический запас или что-то еще? –

+1

Да, вы предоставляете неверные учетные данные. Но SMTP-серверы могут быть настроены так, чтобы не смотреть (или не проверять) учетные данные из локальных сетей. Это больше похоже на проблему с сервером, чем на проблему с кодом. – Josh

+1

@MathiasColpaert Я подозреваю, что если аутентификация отключена на сервере для локальных подключений, она даже не запрашивает у клиента учетные данные, и поэтому не имеет значения, что вы предоставляете. Используйте пакетный сниффер для просмотра трафика, я уверен, вы даже не видите, что учетные данные пересекают провод. – mason