尝试发送电子邮件时“操作已超时”

时间:2012-10-04 03:06:01

标签: c# asp.net

protected void Button1_Click(object sender, EventArgs e)
{
    try
    {
        SmtpClient sm = new SmtpClient();
        MailMessage ms = new MailMessage();
        ms.To.Add(new MailAddress(TextBox1 .Text ));
        ms.Subject = TextBox2.Text;
        ms.Body = TextBox3.Text;
        ms.IsBodyHtml = true;
        sm.Send(ms);
    }
    catch (Exception el)
    {
        Response.Write(el.Message);
    }
}

4 个答案:

答案 0 :(得分:1)

SmtpClient从web.config获取其配置,即SMTP服务器地址和身份验证字段(如果需要)。在发送行上放置一个断点,检查sm对象的设置,确保SMTP参数正确,并且可以从测试此代码的任何地方访问服务器。

答案 1 :(得分:0)

您需要设置连接设置(GMail示例):

SmtpClient sm = new SmtpClient("smtp.gmail.com", 587);
sm.Credentials = new System.Net.NetworkCredential("abc@gmail.com", "password");
sm.EnableSsl = true;

答案 2 :(得分:0)

当您无法连接到SMTP服务器时会出现此问题,因此会出现超时消息。发生此问题有几种可能性:

  • 错误的SMTP地址
  • SMTP拒绝
  • SMTP服务器已脱机
  • 端口设置
  • SSL配置

答案 3 :(得分:0)

请在web.config档案

中输入
<system.net>
            <mailSettings>
          <smtp from="yourEmailId@gmail.com">
            <network host="smtp.gmail.com" port="587" userName="yourEmailId@gmail.com" password="***** " defaultCredentials="false"/>
              </smtp>
            </mailSettings>
        </system.net>