2016-07-30 3 views
1

Здравствуйте, у меня есть хостинг Windows Server 2008 R2 Enterprise и приобретенное доменное имя. Я указал все на свой домен на dns моего сервера и загрузил мой сайт ASP.Net в IIS. Я также настроил функцию SMTP, поэтому теперь я пытаюсь отправить электронные письма с моего SMTP, но я не могу, потому что приложение говорит, что пользователь не аутентифицирован. Вот исходный код моей страницы:Как отправлять сообщения с моего SMTP-сервера?

MailMessage activationMail = new MailMessage(); 
       activationMail.From = new MailAddress("[email protected]", "MyGame"); 
       activationMail.To.Add(RegistrationEmail.Text); 
       StreamReader sRead = new StreamReader(Server.MapPath("~/Mails/ActivationMail.html")); 
       string readFile = sRead.ReadToEnd(); 
       string Strcontent = ""; 
       Strcontent = readFile; 
       Strcontent = Strcontent.Replace("[Name]", RegistrationRealName.Text); 
       Strcontent = Strcontent.Replace("[Username]", RegistrationUsername.Text); 
       Strcontent = Strcontent.Replace("[Password]", RegistrationPasswordCreate.Text); 
       Strcontent = Strcontent.Replace("[useractivation]", useractivation); 
       Strcontent = Strcontent.Replace("[Site]", site); 
       Strcontent = Strcontent.Replace("[Facebook]", "facebook"); 
       activationMail.Subject = "My Game - Registration"; 
       activationMail.Body = Strcontent.ToString(); 
       sRead.Close(); 
       activationMail.IsBodyHtml = true; 
       activationMail.BodyEncoding = UTF8Encoding.UTF8; 
       SmtpClient client = new SmtpClient(); 
       client.Host = "mydomain"; 
       NetworkCredential cr = new NetworkCredential(); 
       cr.UserName = "User from AD DS"; 
       cr.Password = "Password of User"; 
       client.UseDefaultCredentials = false; 
       client.DeliveryMethod = SmtpDeliveryMethod.Network; 
       client.Port = 25; 
       client.Timeout = 10000; 
       client.Send(activationMail); 

Примечания: Мое доменное имя не совпадает с областью моего леса. Я также попытался установить домен моего леса как клиента. Хост, но тот же результат. У меня есть эти настройки на моем Web.config

<mailSettings> 
     <smtp from="[email protected]"> 
      <network defaultCredentials="false" host="localhost" /> 
     </smtp> 
    </mailSettings> 

настройки моего SMTP-сервера являются следующие:

  • IP Address =
  • Authentication = Standar & подлинности Windows, моего сервера IP проверяются, TSL проверяется , Домен по умолчанию установлен в мой домен (а не мой почтовый ящик MX.domain). Анонимная проверка подлинности не проверяется.
  • Connection = IP только мой сервер имеет доступ
  • Relay = Только мой купленный домен (не MX записи) имеет доступ
  • Outbound безопасности = Standar аутентификации (пользователя из AD DS - одни и те же учетные данные с теми, в моем файле CS выше), TLS включен
  • Дополнительные параметры доставки = Я установил мое доменное имя там (не MX запись - дает мне ошибку)

кто-нибудь знает, что я делаю не так?

ответ

0

Добавьте следующий код, как вы не предоставили никаких учетных данных к SMTP:

client.Credentials = cr; 

Как:

NetworkCredential cr = new NetworkCredential(); 
cr.UserName = "User from AD DS"; 
cr.Password = "Password of User"; 
client.Credentials = cr; 
client.UseDefaultCredentials = false; 
client.DeliveryMethod = SmtpDeliveryMethod.Network; 
client.Port = 25; 
client.Timeout = 10000; 
client.Send(activationMail); 
+0

Спасибо за замечая, насколько глупо от меня ... Но я все еще получаю ту же ошибку ... Есть ли что-нибудь еще, что я могу делать неправильно? – Dev

+0

все выглядит хорошо. вы уверены, что учетные данные верны? –

+0

Ну, я добавил указанного пользователя к пользователям и группам AD DS, и я попробовал имя пользователя как HOST \ User и User в моем файле cs с правильным паролем. Я новичок в Windows Server так много раз, что не знаю, что я делаю, например, я изменил значение defaultcredentials на false в web.config, и мои настройки SMTP в IIS изменились на «Нет аутентификации», но на SMTP-сервере настройки, которые я установил, требуется проверка подлинности ... Я не пробовал имя пользователя [email protected] tho, потому что мой приобретенный домен не совпадает с доменом леса ... – Dev

0

попробуйте добавить эти две строки:

client.EnableSsl = false; 
client.Credentials = cr; 
Смежные вопросы