2017-03-16 114 views
0

電子郵件服務器的當前設置已檢入版本控制。如何從Azure應用程序服務設置郵件設置 - 應用程序設置

<configuration> 
    <system.net> 
    <mailSettings> 
     <smtp deliveryMethod="network"> 
     <network host="..." port="25" password="..." userName="..." /> 
     </smtp> 
    </mailSettings> 
    </system.net> 
</configuration> 

我想從版本控制,使其他開發人員刪除(至少密碼)不能(意外)在我們的郵件服務器發送郵件。

我們爲我們的出站電子郵件使用SAAS提供程序,因此我無法通過設置防火牆來限制對此服務器的訪問。唯一的身份驗證是使用SAAS提供商提供的用戶名和密碼。

是否可以從Azure中的應用程序設置刀片設置郵件設置。這樣我就可以從版本控制中刪除密碼,並且不需要在(自動)部署時手動更新web.config。

+0

要發送您的電子郵件你在用什麼,SmtpClient? –

+0

是的,使用[Postal](http://aboutcode.net/postal/smtp-config.html),它使用SmtpClient。 – Waaghals

回答

2

Waaghals,

正如你所提到的,你正在使用Postal。在他們的GitHub上,我注意到你可以提供一個創建SmtpClient的函數。

從那裏開始,您可以創建將使用應用程序設置來構建定製SmtpClient:

var smtpServerHost = CloudConfigurationManager.GetSetting("SmtpServerHost"); 
    var smtpServerPort = int.Parse(CloudConfigurationManager.GetSetting("SmtpServerPort")); 
    var smtpServerUserName = CloudConfigurationManager.GetSetting("SmtpServerUserName"); 
    var smtpServerPassword = CloudConfigurationManager.GetSetting("SmtpServerPassword"); 

    var client = new SmtpClient(smtpServerHost, smtpServerPort); 
    client.Credentials = new NetworkCredential(smtpServerUserName, smtpServerPassword); 

這樣你就可以在你的應用程序Azure的服務的應用程序設置修改您的電子郵件設置。

+0

var client = new SmtpClient(smtpServerHost,smtpServerPort); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Credentials = new NetworkCredential(smtpServerUserName,smtpServerPassword); client.EnableSsl = true; EmailService emaiService = new EmailService(ViewEngines.Engines,()=> client); emaiService.SendAsync(email); –