ASP.NET慢速发送电子邮件

时间:2009-12-22 09:12:46

标签: asp.net email

在我的网络应用程序(ASP.NET MVC)中,我使用以下内容发送电子邮件:

        MailMessage msg = new MailMessage("email@domain.com", "somewhere@recipient");
        msg.Body = "Message body";
        msg.IsBodyHtml = false;
        SmtpClient client = new SmtpClient();
        msg.Subject = "Subject";
        client.Send(msg);

我的system.net邮箱设置如下web.config:

  <system.net>
    <mailSettings>
      <smtp deliveryMethod="Network" from="email@domain.com">
        <network host="mail.domain.com" port="25" defaultCredentials="false" userName="email@domain.com" password="mypassword" />
      </smtp>
    </mailSettings>
  </system.net>

这发送电子邮件很好。我遇到的唯一问题是电子邮件是在函数调用后的2-3分钟内发送和接收的。

我在使用SmarterMail的两台主机上看到过这种情况,在我询问serverfault.com上的优秀人员然后质疑我的主机之前,我想知道是否有任何编码方式可能导致这个问题2-3分钟延迟。

它可能看起来可以忽略不计,但我作为网络冲浪者,在我应该花费很长时间的电子邮件时讨厌它,特别是如果他们有关键信息,如登录信息。

2 个答案:

答案 0 :(得分:4)

我认为这与您的服务器网络流量有关。

答案 1 :(得分:1)

有两种简单的方法可以测试传送延迟是否由您的程序引起:

  1. 通过其他方式发送邮件,例如,通过启动邮件客户端或使用某些command-line mail client(使用相同的SMTP服务器)。如果邮件显示相同的延迟,则您的软件与其无关。

  2. 或者,您可以查看其中一封收到的邮件的标题:它们现在应该显示邮件在路径上的每个邮件服务器上花费的时间。如果您在解释标题时遇到问题,请将其添加到您的问题或have a look at one of the tutorials online

  3. (顺便说一句,我同意Ozan的假设,即延迟是由邮件服务器而不是你的程序引起的。)