【问题标题】:SmtpException occurring in System.dllSystem.dll 中发生 SmtpException
【发布时间】:2018-08-03 10:45:18
【问题描述】:

我正在尝试创建一个包含表单的 asp 页面。提交表单后,它应该发送一封电子邮件。

ASPX 标记

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    <p>Please provide your comments</p>
<p>Your name:<br />
<asp:TextBox ID="YourName" runat="server" Width="150px" /><br />
Your email address:<br />
<asp:TextBox ID="YourEmail" runat="server" Width="150px" /><br />
Your comments:<br />
<asp:TextBox ID="Comments" runat="server" TextMode="MultiLine" Rows="10" Width="400px" />
</p>
<p>
<asp:Button ID="Button1" runat="server" Text="Send" OnClick="Button1_Click" />
</p> 
</asp:Content>

代码背后

    protected void Button1_Click(object sender, EventArgs e)
    {
        using (MailMessage message = new MailMessage())
        {
            message.From = new MailAddress(YourEmail.Text.ToString());
            message.To.Add(new MailAddress("example@email.com"));
            message.CC.Add(new MailAddress("example2@email.com"));
            message.Subject = "Message via My Site from " + YourName.Text.ToString();
            message.Body = Comments.Text.ToString();
            SmtpClient client = new SmtpClient();
            client.Host = "127.0.0.1";
            client.Send(message);
        }
    }

我收到的错误

System.dll 中出现“System.Net.Mail.SmtpException”类型的异常,但未在用户代码中处理

【问题讨论】:

  • 检查异常。有一个 Message 或一个 InnerException 会告诉你到底出了什么问题。
  • 我在您发布的代码中看不到任何异常处理。在发送和检查 SmtpException 之前添加一个 Try Catch。 msdn.microsoft.com/en-us/library/…

标签: c# asp.net


【解决方案1】:

您需要在本地计算机上运行 SMTP 服务器,并且它需要在 127.0.0.1 上侦听才能使此代码正常工作。

为 SMTP 使用不同的机器更正常,或者出于开发目的安装 smtp 服务器,例如 development smtp server for windows 中提到的那些。

此外,如果您在处理 smtpclient 的代码周围放置一个 try catch,您将能够获得异常消息和其他信息。

【讨论】:

  • 我想我对它的工作原理还不够了解。感谢您的洞察力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-06
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多