【问题标题】:SMTP Email SendingSMTP 电子邮件发送
【发布时间】:2011-07-30 14:41:16
【问题描述】:

无法建立连接,因为目标机器主动拒绝它 127.0.0.1:25 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详情: System.Net.Sockets.SocketException:否 可以建立连接,因为 目标机主动拒绝 127.0.0.1:25

来源错误:

未处理的异常是 在执行过程中产生 当前的网络请求。信息 关于原产地和位置 可以使用来识别异常 下面的异常堆栈跟踪。

堆栈跟踪:

[SocketException (0x274d): 否 可以建立连接,因为 目标机主动拒绝 127.0.0.1:25] System.Net.Sockets.Socket.DoConnect(端点 端点快照,套接字地址 套接字地址)+239
System.Net.Sockets.Socket.InternalConnect(端点 远程EP) +35
System.Net.ServicePoint.ConnectSocketInternal(布尔值 连接失败,套接字 s4,套接字 s6, Socket&socket,IPAddress&地址, ConnectSocketState 状态,IAsyncResult asyncResult,Int32 超时,异常& 例外)+224

[WebException: 无法连接到 远程服务器]
System.Net.ServicePoint.GetConnection(池化流 PooledStream,对象所有者,布尔值 异步,IPAddress& 地址,Socket& abortSocket, 套接字& abortSocket6, Int32 超时)+5483819
System.Net.PooledStream.Activate(对象 owningObject,布尔异步,Int32 超时,GeneralAsyncDelegate 异步回调)+202
System.Net.PooledStream.Activate(对象 拥有对象,GeneralAsyncDelegate 异步回调)+21
System.Net.ConnectionPool.GetConnection(对象 拥有对象,GeneralAsyncDelegate asyncCallback,Int32 创建超时) +332 System.Net.Mail.SmtpConnection.GetConnection(字符串 主机,Int32 端口)+160
System.Net.Mail.SmtpTransport.GetConnection(字符串 主机,Int32 端口)+159
System.Net.Mail.SmtpClient.GetConnection() +35 System.Net.Mail.SmtpClient.Send(MailMessage 留言)+1213

[SmtpException: 发送邮件失败。] System.Net.Mail.SmtpClient.Send(MailMessage 留言)+1531
Checkout.btnSend_Click(对象发送者, 事件参数 e) +2675
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +111
System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串 事件参数)+110
我无法在实时连接中发送电子邮件,但在我的本地工作中。

请帮帮我。

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串 eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler 源控件,字符串事件参数) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint) +1565

版本信息:Microsoft .NET Framework 版本:2.0.50727.3615; ASP.NET 版本:2.0.50727.3618

这是我的 C# 代码..

        SmtpClient SmtpMail = new SmtpClient();
        SmtpMail.Host = "localhost";

        //delete session cookie
        Response.Cookies["session"].Expires = DateTime.Now.AddYears(-30);

        SmtpMail.Send(objEmail);

【问题讨论】:

  • 你的机器上还有邮件服务器吗?你试过telnet localhost 25吗?
  • 你使用的是什么 SMTP 服务器?
  • ...别忘了检查您的(Windows)防火墙...
  • ...您的本地主机是否配置为 SMTP 服务器?
  • 您可能还需要提供一些身份验证。您确定要从 localhost 发送邮件吗?

标签: c# asp.net email smtp


【解决方案1】:

您忘记在该机器上启动 SMTP 服务器

请不要告诉您那台机器上没有 SMTP 服务器。但是,如果你不得不说,请参阅此 pagethis 页面

即使您配置了本地 SMTP 服务器,您的电子邮件也很可能最终进入垃圾邮件文件夹。最好使用您的电子邮件提供商的 SMTP 服务器。如果您使用的是 Gmail,请查看here

【讨论】:

  • 是的,但在我的情况下,尽管 SMTP 服务已打开,但 SMTP 服务器已打开且正常运行,我仍会收到相同的 127.0.0.1:25 错误。它以前可以工作,但由于某种安全设置更改(但不是 SMTP 中的设置)而突然停止。
【解决方案2】:

安装了 smtp 服务但未启动时出现错误。要在已安装 smtp 的本地机器上启动服务,我采取的步骤如下:

  1. 打开服务器管理器
  2. 选择本地服务器
  3. SERVICES下的过滤框中输入“smtp”(见图)
  4. 右键单击简单邮件传输协议服务 (SMTP) 和 选择启动服务

【讨论】:

  • 这对我有用。但我不得不将启动类型设置为自动,因为出于某种原因它是手动的......
  • @VDWWD 我这周实际上只需要做同样的事情。
猜你喜欢
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 2017-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多