2016-11-17 13 views
1

Я пытаюсь настроить SMTP-реле для отправки писем из веб-приложения без имени пользователя и пароля. Я читал, что вы можете установить локально на IIS и использовать «Нет аутентификацию» enter image description here В web.config, это мои настройки:Настройка SMTP без имени пользователя, пароля

<appSettings> 
    <add key="SmtpServerAddress" value="localhost" /> 
    <add key="SmtpServerPort" value="25" /> 
    <add key="SmtpServerTimeout" value="30" /> 
</appSettings> 
<system.net> 
<mailSettings> 
    <smtp deliveryMethod="Network" from=""> 
    <network host="localhost" port="25" /> 
    </smtp> 
</mailSettings> 

И мой код фоновый для отправки электронной почты является:

SmtpClient sc = new SmtpClient(); 
    sc.Host = "localhost"; 
    sc.Port = 25; 
    sc.UseDefaultCredentials = true; 
sc.DeliveryMethod = SmtpDeliveryMethod.Network; 
try 
    { 
    sc.Send(mm); 
    } 
catch (Exception ex) 
    { 
    throw ex; 
    } 

Когда я отправляю событие click, для отправки почты, я получаю «удаленный сервер не найден».

Не могли бы вы пролить свет на это?

+0

Возможно, вы захотите изменить этот скриншот, этот адрес электронной почты, вероятно, не будет использоваться здесь. – Clint

+1

Спасибо @Clint - Изменен! – Ron

+0

@ Вы можете по-прежнему видеть свое исходное изображение (тот, у которого есть недействительный адрес электронной почты в разделе редактирования. –

ответ

2

Вы не можете добавить localhost и начать отправлять электронные письма (если на самом деле не работает сервер SMPT). Вам по-прежнему нужен «настоящий» SMTP-сервер. Эти настройки не более, чем добавление SMTP-сервера по умолчанию в Web.Config.

Если вы не установили эти настройки в IIS, вы отправляете почту следующим образом. Могут быть примеры этого на SO.

using (SmtpClient client = new SmtpClient()) 
{ 
    client.Host = "mail.fakedomain.nl"; 
    client.Port = 25; 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.UseDefaultCredentials = false; 
    client.Credentials = new NetworkCredential("[email protected]", "abcd123"); 

    //send mail 
} 

Но если установить параметры по умолчанию в IIS, вы можете сделать это

using (SmtpClient client = new SmtpClient()) 
{ 
    //send mail 
} 

Это экономит несколько строк кода.

Вы пытаетесь это сделать на своем компьютере разработки? Если это так, вы можете установить hMailServer

+0

Спасибо @VDWWD, Итак, не следует ли указывать метод доставки, например: smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network, если я просто used client.UserDefaultCredentials = true;? – Ron

+0

Обновлен мой anser, чтобы сделать его более понятным. Надеюсь, что в обоих случаях вам все равно нужен SMTP-сервер. Если вы разрабатываете локально, вы, вероятно, можете использовать его у своего провайдера. – VDWWD

+0

Спасибо @VDWWD, да, у меня нет проблем, когда я использую учетные данные для SMTP-сервера (имя пользователя, psswd), но мой главный вопрос здесь в том, следует ли использовать систему ретрансляции SMTP для отправки писем без имени пользователя и пароля. – Ron

 Смежные вопросы

  • Нет связанных вопросов^_^