C# SMTP服务器关闭时,如何将电子邮件放入队列?

C# SMTP服务器关闭时,如何将电子邮件放入队列?,c#,asp.net,email,smtp,C#,Asp.net,Email,Smtp,我有一个很大的问题,我的SMTP服务器发送电子邮件。经常下雨 此时,我正在使用以下代码: MailMessage mailMsg = new MailMessage(); mailMsg.From = new MailAddress("fromMail@example.com"); mailMsg.To.Add("toMail@example.com"); mailMsg.Subject = "..."; mailMsg.IsBodyHtml = true; mailMsg.BodyEncodi

我有一个很大的问题,我的SMTP服务器发送电子邮件。经常下雨

此时,我正在使用以下代码:

MailMessage mailMsg = new MailMessage();
mailMsg.From = new MailAddress("fromMail@example.com");
mailMsg.To.Add("toMail@example.com");
mailMsg.Subject = "...";
mailMsg.IsBodyHtml = true;
mailMsg.BodyEncoding = Encoding.UTF8;
mailMsg.Body = "Mail";
mailMsg.Priority = MailPriority.High;
SmtpClient client = new SmtpClient();
client.Credentials = new NetworkCredential("account@gmail.com", "password");
client.Port = 456;         
client.Host = "smtp.gmail.com";
client.EnableSsl = true;
client.Send(mailMsg);

但是,当我的SMTP服务器关闭时,我想将所有电子邮件放入一个队列,当它恢复时,我想一次发送一封。有没有办法在C#中通过编程实现这一点?

Gmail的SMTP服务器经常停机?这很奇怪

如果电子邮件是至关重要的,我建议您使用本地排队服务或基于Microsoft排队系统构建自己的服务


但如果它是如此重要,我会尝试解决我的SMTP问题。

Gmail SMTP只是一个例子。我在Gmail SMTP中使用该代码,因为它工作正常,而且从不停机。问题在于本地SMTP,这就是为什么我需要一种C#方式在服务器关闭时将邮件放入队列…@jeff如果您使用IIS作为SMPTP的代理,请查看MSMQ,将邮件发送到MSMQ队列,而不是直接发送到SMTP服务器。它已经在系统中(或需要安装),只需在代码中进行少量调整;)Caspar是对的,在队列中写入而不是连接到服务会有所帮助。只需在spool目录中存储完整的电子邮件以及标题等。假设我使用Gmail SMTP服务器,我如何先在队列中存储电子邮件,然后再发送它们?通过维护您自己的队列系统。我建议您使用本项目提供的免费排队系统: