2017-02-13 12 views
0

Я работаю над веб-проектом. Я хочу создать систему «Забудьте мой пароль» и отправить письмо пользователю, когда это необходимо, но когда я это пробую, он дает такие ошибки, как SmtpException: сообщение о неудачной отправке, SocketException: сторона не ответила должным образом или не удалось выполнить соединение из-за сбоя подключенного хоста ответить и не отправлять почту. Я пробовал 2525, 25 и 587 портов. Я также проверил, если я могу подключить smtp.gmail.com по mxtoolbox:Не удается отправить почту с моего localhost с помощью smtp с C#

Это тест SMTP Email сервера

SMTP Email Server Test

Это SMTP тест DNS

SMTP DNS Test

и вот мой код:

protected void lblForPass_Click(object sender, EventArgs e) 
{ 
    SmtpClient client = new SmtpClient(); 
    client.DeliveryMethod = SmtpDeliveryMethod.Network; 
    client.EnableSsl = true; 
    client.Host = "smtp.gmail.com"; 
    client.UseDefaultCredentials = false; 
    client.Port = 25; 
    client.Timeout = 300000; 
    System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("[email protected]", "1122334455"); 
    client.Credentials = credentials; 

    MailMessage msg = new MailMessage(); 
    msg.From = new MailAddress("[email protected]"); 
    msg.To.Add(new MailAddress("[email protected]")); 

    msg.Subject = "Subject Test"; 
    msg.IsBodyHtml = true; 
    msg.Body = string.Format("<html><head></head><body><b>Body Test</b></body>"); 


     try 
     { 
      client.Send(msg); 
      ScriptManager.RegisterClientScriptBlock(this, GetType(), "Mail Status", "alert('Sended Successfuly')", true); 
     } 

     catch(Exception ex) 
     { 
      Exception ex2 = ex; 
      string errorMessage = string.Empty; 
      while (ex2 != null) 
      { 
       errorMessage += ex2.ToString(); 
       ex2 = ex2.InnerException; 

      } 
      string err = ex.Message; 
      ScriptManager.RegisterClientScriptBlock(this, GetType(), "Mail Error", "alert('" +err+"')", true); 
     } 


    } 

Есть ли что-то, что я пропустил в этом блоке кода или мне нужно проверить что-нибудь еще? Спасибо.

ответ

0

Я думаю, вы можете попробовать: 1) Попробуйте изменить порт для 587. 2) Проверьте настройки учетной записи (https://www.google.com/settings/security/lesssecureapps)

Для шахтных веб-проектов, я использую http://www.mailgun.com/ бесплатно 10000 писем в месяц. И легко подключиться к любому доменному имени, протоколированию и т. Д.

+0

Уже пробованный порт 587. Изменен параметр моей учетной записи на «Открыть» и попытался, но это также не помогло. Это может быть мой брандмауэр? – ReadyFreddy

+0

Да. На мой взгляд, использование сторонних услуг - хорошее решение. –

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

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