2010-09-20 71 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

相關問題