2016-05-29 3 views
0

До сих пор это то, что я пробовал, я хочу отправить электронное письмо на нашу школьную учетную запись электронной почты в формате [email protected] или что-то вроде [email protected]. Я уверен, что это перспектива счета, поэтому я взял настройки SMTP для кругозора, но когда я делаю это, я продолжаю встречая следующее сообщение об ошибке:Отправляйте почту в адрес Outlook ASP.Net C#

Failure sending mail.

Что я здесь делаю неправильно? Я уже искал ошибку, но все ответы показывают один и тот же синтаксис с моими, за исключением параметров smtp. Так что должно быть что-то не так с моими настройками smtp для Outlook.

SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 25); //587 
smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "myPassword"); 
smtpClient.UseDefaultCredentials = true; 
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtpClient.EnableSsl = true; 

MailMessage mail = new MailMessage(); 


mail.From = new MailAddress("[email protected]", "CTMIS-no-reply"); 
mail.To.Add(new MailAddress("[email protected]")); 
mail.CC.Add(new MailAddress("[email protected]")); 
smtpClient.Send(mail); 

ответ

3

Для внесения изменений в код потребовались небольшие изменения.

  1. UseDefaultCredentials должен быть установлен в ложных, так как вы хотите использовать пользовательские учетные данные
  2. UseDefaultCredentials должен быть установлен на Ложный перед тем настройки учетных данных.
  3. Порт SSL - 587 для Outlook.

Все это.

Вот исправленный код.

SmtpClient smtpClient = new SmtpClient("smtp-mail.outlook.com", 587); //587 
smtpClient.UseDefaultCredentials = false; 
smtpClient.Credentials = new System.Net.NetworkCredential("[email protected]", "myPassword"); 

smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; 
smtpClient.EnableSsl = true; 

MailMessage mail = new MailMessage(); 
mail.From = new MailAddress("[email protected]", "CTMIS-no-reply"); 
mail.To.Add(new MailAddress("[email protected]")); 
mail.CC.Add(new MailAddress("[email protected]")); 
smtpClient.Send(mail); 

Относительно UseDefaultCredentials

От MSDN:

Некоторые SMTP серверы требуют, чтобы клиент проверку подлинности, прежде чем сервер посылает электронную почту от его имени. Установите это свойство равным true, если этот объект SmtpClient должен, если запрашивается сервером, аутентифицироваться с использованием учетных данных по умолчанию для текущего пользователя.

-

Поскольку вы не хотите, чтобы проверить подлинность с помощью учетных данных Windows,, то свойство установлено в значение False. Что касается того факта, что вам нужно поставить его раньше, у меня нет официального источника, но он просто не работает, если вы установите свои учетные данные, прежде чем устанавливать это свойство в false.

+0

Я попробую сначала .. Большое спасибо за быстрый ответ –

+0

ahh моя проблема была в порте сервера. он не связывается напрямую с портом. но большое спасибо информации sir @Sage –

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