【问题标题】:ASP.NET using gmail with smtp error: "A connection attempt failed because the connected party did not properly respond.."ASP.NET 使用带有 smtp 错误的 gmail:“连接尝试失败,因为连接方没有正确响应..”
【发布时间】:2017-02-22 12:54:52
【问题描述】:

我正在尝试向我的 MVC 站点添加新的电子邮件确认方法,因此每当用户注册时,他都会收到一封确认电子邮件。问题是,无论我使用什么代码(我在 GitHub 上找到了一些不同的选项),我总是得到相同的错误:

“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立连接失败,因为连接的主机未能响应 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("example@gmail.com", "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 \" <example@example.com>";
            msg.From = new MailAddress(fromAddress);
            msg.IsBodyHtml = true;

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

【问题讨论】:

  • 我希望你没有把你的真实密码放在那里

标签: c# asp.net email model-view-controller smtp


【解决方案1】:

SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 Authentication Required。

【讨论】:

  • 安全连接是什么意思?我使用了 ssl (smtp.enablessl = true)
  • aspsnippets.com/Articles/… 我认为您的电子邮件未通过身份验证。
  • 嘿,我找到了解决方案!你可以在下面的评论中看到它:)
【解决方案2】:

我找到了解决方案!我在另一台计算机(家用计算机)上运行了相同的代码,它运行良好。似乎端口 (587) 在我的工作电脑中 被另一层安全防护(防火墙没有阻止它,防病毒软件也没有)。 IT 经理说他用另一层阻塞了许多端口,而我无权访问。如果您的工作电脑中出现相同的错误 - 尝试在另一台电脑(未连接到同一网络)上运行它并查看代码是否有效。

【讨论】:

    猜你喜欢
    • 2014-11-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2012-09-27
    • 1970-01-01
    相关资源
    最近更新 更多