代码之家  ›  专栏  ›  技术社区  ›  Omar

ASP.NET慢速电子邮件发送

  •  2
  • Omar  · 技术社区  · 15 年前

    在我的Web应用程序(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);
    

    web.config中的system.net邮件设置如下:

      <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 回复  |  直到 15 年前
        1
  •  4
  •   Ozan BAYRAM    15 年前

    我想这是关于你的服务器网络流量。

        2
  •  1
  •   Heinzi    15 年前

    有两种简单的方法来测试交付延迟是否由您的程序引起:

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

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

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