2017-02-22 101 views
0

Я пытаюсь добавить новый метод подтверждения электронной почты на мой сайт MVC, поэтому всякий раз, когда пользователь регистрирует его получит электронное письмо с подтверждением. Проблема заключается в том, что независимо от того, какой код я использую (я нашел несколько различных вариантов на GitHub), я всегда получаю ту же ошибку:ASP.NET с использованием gmail с ошибкой smtp: «Не удалось выполнить попытку подключения, потому что связанная сторона неправильно ответила».

"A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 66.102.1.108:587".

код я использовал:

using ATMProject.Models; 
using Microsoft.AspNet.Identity; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Net.Mail; 
using System.Security.Policy; 
using System.Web; 
using System.Web.Mvc; 

namespace ATMProject.Services 
{ 
    public class SendEmailConfirmation 
    { 
     public string email { get; set; } 
     public string fullname { get; set; } 
     public string username { get; set; } 
     public string random { get; set; } 

     public SendEmailConfirmation(string Email, string Fullname, 
      string Username, string Random) 
     { 
      email = Email; 
      fullname = Fullname; 
      username = Username; 
      random = Random; 
     } 

     public void sendEmail() 
     { 
      SmtpClient smtp = new SmtpClient(); 
      smtp.Host = "smtp.gmail.com"; 
      smtp.Port = 587; 
      smtp.UseDefaultCredentials = false; 
      smtp.Credentials = new 
       System.Net.NetworkCredential("[email protected]", "123456"); 
      smtp.EnableSsl = true; 
      MailMessage msg = new MailMessage(); 

      #region Msg 
      msg.Subject = "Hello " + fullname; 
      msg.Body = "Hello " + fullname + 
       "Thanks for Registering in Budgetize...Your Account Details are given below:"; 
      msg.Body += "<tr>"; 
      msg.Body += "<td>User Name :" + username + "</td>"; 
      msg.Body += "</tr>"; 
      msg.Body += "<tr>"; 
      msg.Body += "<td>Activation Number :" + random + "</td>"; 
      msg.Body += "</tr>"; 
      msg.Body += "<tr>"; 
      msg.Body += "<td>Thanking</td><td>Team Budgetize</td>"; 
      msg.Body += "</tr>"; 
      #endregion 

      string toAddress = email; // Add Recepient address 
      msg.To.Add(toAddress); 
      string fromAddress = "\"Budgetize \" <[email protected]>"; 
      msg.From = new MailAddress(fromAddress); 
      msg.IsBodyHtml = true; 

      try {smtp.Send(msg);} 
      catch (Exception ex) {throw;} 
     } 
    } 
} 
+1

Надеюсь, что вы не поставили свой настоящий пастор там – Steve

ответ

0

Для SMTP-сервера требуется безопасное соединение, или клиент не прошел аутентификацию. Ответ сервера: 5.5.1 Требуется аутентификация.

+0

Что вы подразумеваете под защищенным соединением? Я использовал ssl (smtp.enablessl = true) –

+0

http://www.aspsnippets.com/Articles/GMAIL-Error-The-SMTP-server-requires-a-secure-connection-or-the-client-was-not -authenticated.aspx Я думаю, что ваша электронная почта не аутентифицирована. –

+0

Эй, я нашел решение! вы можете увидеть это в комментарии ниже :) –

0

Я нашел решение! Я запустил тот же код на другом компьютере (домашний компьютер), и он работал хорошо. Кажется, что порт (587) был заблокирован в моей работе pc еще одним уровнем безопасности (брандмауэр не блокировал его, также и антивирус). ИТ-менеджер сказал, что он блокирует многие порты другим слоем, к которому у меня нет доступа. Если такая же ошибка возникает в вашей работе pc - попробуйте запустить ее на другом компьютере (который не подключен к той же сети) и посмотрите, работает ли код.