2011-09-26 2 views
13

Это мой Web.config:C# - Не могу отправить почту в Windows Azure через SMTP Gmail

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
      <network defaultCredentials="true" enableSsl="true" host="smtp.gmail.com" port="25" userName="[email protected]" password="xxxxxxxxxxx"/> 
     </smtp> 
    </mailSettings> 
</system.net> 

Мой метод:

public static void EmailVerification(string email, string nickname) 
    { 
     MailAddress from = new MailAddress("xxxxxxxxxxx", "xxxxxxxxxxxx"); 
     MailAddress to = new MailAddress(email); 

     MailMessage message = new MailMessage(from, to); 

     message.Subject = "Test"; 
     message.Body = "Test"; 
     SmtpClient client = new SmtpClient(); 

     try 
     { 
      client.Send(message); 
     } 
     catch(SmtpFailedRecipientException ex) 
     { 
      HttpContext.Current.Response.Write(ex.Message); 
      return; 
     } 
    } 

Моя неудача SmtpException:

Failure sending mail. 

InnerException:

Unable to connect to the remote server 

Я тестирую его локально, но думаю, он должен работать. Я должен запустить его на Windows Azure, я попробовал, и он тоже не работал. Есть что-то, что мне не хватает?

+0

посмотреть на этот вопрос: http://stackoverflow.com/questions/32260/sending-email-in-net-through-gmail/32336#32336 –

ответ

7

Базовые параметры аутентификации по умолчанию и по умолчанию являются взаимоисключающими; если для параметра defaultCredentials установлено значение true и укажите имя пользователя и пароль, используются сетевые учетные данные по умолчанию, а основные данные аутентификации игнорируются.

Использование

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network"> 
      <network enableSsl="true" host="smtp.gmail.com" port="25" userName="[email protected]" password="xxxxxxxxxxx"/> 
     </smtp> 
    </mailSettings> 
</system.net> 
+0

я вижу, я так : Мне нужно было изменить порт на 587 –