System.Net.Mail and MailMessage not Sending Messages Immediately

允我心安 提交于 2019-12-01 05:15:06
O. Jones

Try this, if you're on Dotnet 4.0

using (SmtpClient client = new SmtpClient(smtpServer))  
{
    MailMessage mail = new MailMessage();
    // your code here.

    client.Send(mail);
}

This will Dispose your client instance, causing it to wrap up its SMTP session with a QUIT protocol element.

If you're stuck on an earlier dotnet version, try arranging to re-use the same SmtpClient instance for each message your program sends.

Of course, keep in mind that e-mail is inherently a store-and-forward system, and there is nothing synchronous (or even formally predictable) about delays from smtp SEND to reception.

I agree with Ollie. To answer your question, No, I don't believe there is any buffer setting you can set via a form.

What is confusing about your question is, you say the message take a minute or two to reach your inbox, but then go on to say that when sending to yourself, they go through instantly... I believe you meant that internally, messages send fine and the issue only occurs for external address. In this case, it sounds like maybe your email server maybe queing these messages behind other emails bound for external addresses (which is normal activity). Waiting a minute or two for an email on an external site isn't that long of a wait.

However, this is unlikely, but is your exchange server set to scan outgoing messages?

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!