SMTP电子邮件发送

时间:2011-04-06 08:06:05

标签: c# asp.net email smtp

无法建立连接,因为目标计算机主动拒绝了它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(EndPoint   endPointSnapshot,SocketAddress   socketAddress)+239
  System.Net.Sockets.Socket.InternalConnect(端点   remoteEP)+35
  System.Net.ServicePoint.ConnectSocketInternal(布尔   connectFailure,Socket s4,Socket s6,   插座及放大器; socket,IPAddress&地址,   ConnectSocketState状态,IAsyncResult   asyncResult,Int32超时,异常&   例外)+224

     

[WebException:无法连接到   远程服务器]
  System.Net.ServicePoint.GetConnection(PooledStream   PooledStream,Object owner,Boolean   async,IPAddress&地址,插座&   abortSocket,Socket& abortSocket6,   Int32超时)+5483819
  System.Net.PooledStream.Activate(对象   owningObject,Boolean async,Int32   超时,GeneralAsyncDelegate   asyncCallback)+202
  System.Net.PooledStream.Activate(对象   owningObject,GeneralAsyncDelegate   asyncCallback)+21
  System.Net.ConnectionPool.GetConnection(对象   owningObject,GeneralAsyncDelegate   asyncCallback,Int32 creationTimeout)   +332 System.Net.Mail.SmtpConnection.GetConnection(String   主机,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(对象发送者,   EventArgs e)+2675
  System.Web.UI.WebControls.Button.OnClick(EventArgs的   e)+111
  System.Web.UI.WebControls.Button.RaisePostBackEvent(字符串   eventArgument)+110
  我无法通过实时连接发送电子邮件,但在我的本地工作。

请帮帮我们。

  

System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(字符串   eventArgument)+10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler   sourceControl,String eventArgument)   +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection   postData)+36
  System.Web.UI.Page.ProcessRequestMain(布尔   includeStagesBeforeAsyncPoint,Boolean   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);

2 个答案:

答案 0 :(得分:17)

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

请不要告诉您该机器上没有SMTP服务器。但是,如果您必须告诉它,请参阅此pagethis页面

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

答案 1 :(得分:0)

我安装了smtp服务时出错,但未启动。要在已安装smtp的本地计算机上启动服务,这是我采取的步骤:

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

Server manager with Local Server selected and services filtered to smtp