2010-08-20 51 views
3

我有一個應用程序每月發送500K +交易電子郵件。有些比其他更重要。我需要使用帶有跟蹤功能的高郵件電子郵件解決方案(閱讀更貴)以及使用普通郵件服務器的不太重要的電子郵件。在web.config的mailSettings部分中處理多個郵件服務器的最佳方式是什麼?

有沒有辦法在mailSettings中設置多個指向兩個郵件服務器的smtp部分,並讓代碼選擇他們想要發送的郵件服務器。

有一種方法可以使用「位置」來完成它,並讓頁面處理髮送電子郵件時根據路徑選擇smtp服務器。然而,我有一個單獨的後臺進程分叉,這是異步做這件事,這沒有多大幫助。

謝謝!

回答

1

而不是使用郵件設置,也許看看使用appsettings來存儲您的服務器連接字符串。

<appSettings> 
    <add key="SmtpServer.Fast" value="fast.smtp.mycompany.com" /> 
    <add key="SmtpServer.Slow" value="slow.smtp.mycompany.com" /> 
</appSettings> 

就用new SmtpClient(server)代替new SmtpClient()然後,你可以設置你的代碼是這樣的:

SmtpClient client = null; 

if (IsHighPriorityMessage(msg)) 
    client = new SmtpClient(ConfigurationManager.AppSettings["SmtpServer.Fast"]); 
else 
    client = new SmtpClient(ConfigurationManager.AppSettings["SmtpServer.Slow"]); 

如果您需要配置身份驗證,只需使用client.Credentials

+0

感謝。有很多方法可以做到這一點,這是其中之一。我們現在正在做類似的事情。正如你可以想象的,不僅僅是MTA的名字 - 其中一個使用ESMTP,所以我們還需要有用戶/密碼/端口設置。 – taazaa 2010-08-22 15:11:00

相關問題