2010-09-20 31 views
3

我的SMTP服务器用于发送电子邮件有一个很大的问题。经常下降。如何在SMTP服务器关闭时将电子邮件放入队列中?

在这一点上我使用这个代码:

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

但是,当我的SMTP服务器已关闭我想放在一个队列中的所有邮件,当它恢复我想给他们一个时间。有没有什么办法如何在C#中编程执行此操作?

回答

2

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

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

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

+0

Gmail SMTP只是一个例子。我使用Gmail的SMTP代码,因为它可以工作,并且永不停机。问题在于本地SMTP,这就是为什么当服务器关闭时需要使用C#方式将消息放入队列中...... – 2010-09-20 07:44:28

+0

@jeff如果使用IIS作为SMPTP,请查看MSMQ,将消息发送给MSMQueue而不是直接到SMTP服务器。它已经在系统中(或者需要安装),只需要在代码中稍作调整;) – 2010-09-20 08:06:45

+0

Caspar是对的,在队列中写入而不是连接到服务可以提供帮助。只需在线轴目录中存储带有标题等的完整电子邮件。 – 2010-09-20 10:54:51

相关问题