SmtpClient电子邮件发送超时

时间:2013-08-20 12:49:53

标签: c# email timeout smtpclient

我遇到一个让我疯狂的问题! 我有一个小的Delphi 7应用程序(使用Indy 9组件)用于发送电子邮件和所有工作正常。 我正在尝试开发一个同样的C#应用​​程序(Visual Studio 2012),但在我的所有测试中(在互联网上发现了很多变化)结果总是“操作有超时”。 几年前我在VS2005 C#应用程序中测试了相同的代码并且它有效,但现在,错误发生在VS2010(我的家)和VS2012(工作)

Ps:SMTP服务器的配置没问题,因为Delphi应用程序正在运行!

Ps2:我已经在不同的机器上测试了这段代码,以避免出现防病毒/代理问题,而且我家也是如此,结果是一样的,总是......

在C#代码段下面:

private void button7_Click(object sender, EventArgs e)
{
  using (var msg = new MailMessage("fromMail@myServer.com.br", "toMail@myServer.com.br", "Teste de Envio de E-mail em C#", "Mensagem enviada utilizando app em C#"))
  {
    using(var smtpClient = new SmtpClient("smtp.myServer.com.br", 465))
    {
      smtpClient.EnableSsl = true;
      smtpClient.Timeout = 2 * 60 * 1000;
      smtpClient.UseDefaultCredentials = false;
      smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
      smtpClient.Credentials = new NetworkCredential(msg.From.User, "mypassword");
      try
      {
        smtpClient.Send(msg);
      }
      catch (SmtpException ex)
      {
        MessageBox.Show("Erro ao enviar e-mail: " + ex.Message + "(" + ex.StatusCode + ")");
      }
    }
  }
}

编辑:服务器防火墙阻止了我的测试。查看评论。

1 个答案:

答案 0 :(得分:2)

我发现了问题。服务器防火墙阻止了我的测试。 关掉它,一切都很顺利。