在我的网络应用程序(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分钟延迟。
它可能看起来可以忽略不计,但我作为网络冲浪者,在我应该花费很长时间的电子邮件时讨厌它,特别是如果他们有关键信息,如登录信息。
答案 0 :(得分:4)
我认为这与您的服务器网络流量有关。
答案 1 :(得分:1)
有两种简单的方法可以测试传送延迟是否由您的程序引起:
通过其他方式发送邮件,例如,通过启动邮件客户端或使用某些command-line mail client(使用相同的SMTP服务器)。如果邮件显示相同的延迟,则您的软件与其无关。
或者,您可以查看其中一封收到的邮件的标题:它们现在应该显示邮件在路径上的每个邮件服务器上花费的时间。如果您在解释标题时遇到问题,请将其添加到您的问题或have a look at one of the tutorials online。
(顺便说一句,我同意Ozan的假设,即延迟是由邮件服务器而不是你的程序引起的。)