2009-01-20 53 views

回答

1

最好的答案是,如果你直到現場一無所知,你能否將所有設置移到web.config中?這將允許配置直到最後一刻。下面是一些代碼轉儲到你的web.config文件。我會問,爲什麼你沒有訪問這些信息雖然

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
     <network host="SMTP SERVER ADDRESS" port="25" 
     userName="USERNAME" password="PASSWORD"> 
     </smtp> 
    </mailSettings> 
    </system.net> 
0

如果您的SMTP配置是正確的,只是這樣做:

MailMessage mail = new MailMessage(); 

mail.To = "To"; 
mail.From = "From"; 
mail.Subject = "Subject";  
mail.Body = "Body"; 

SmtpMail.SmtpServer = "localhost"; 
SmtpMail.Send(mail); 
+0

要爲「搞定」的屬性,你不能對它進行設置這樣的。 – Tarik 2009-07-20 00:13:33

11

添加到您的web.config(MSDN reference here ):

<system.net> 
    <mailSettings> 
     <smtp deliveryMethod="Network" from="[email protected]"> 
      <network host="localhost" port="25" /> 
     </smtp> 
    </mailSettings> 
</system.net> 

使用SmtpClient而不指定配置設置將使用的值從web.config:

MailMessage msg = new MailMessage(...); 
// build message contents 
SmtpClient client = new SmtpClient(); 
client.Send(msg); 
+0

那個很棒。謝謝。 – Tarik 2009-07-10 00:24:07

2

我不久前回答了一個類似於這個問題。你可以查看它here。使用papercut,您可以在不知道或使用實際生產smtp服務器的情況下測試您的應用程序。

然後在測試過程中,您可以將主機設置爲在app/web配置中運行papercut的本地機器。因此一旦轉入生產就可以改變。

Papercut會告訴你發送的郵件以及內容。

0

作爲替代方案:如果你不想依賴於服務器的配置和做編程你總是可以做到這一點:

MailMessage mail = new MailMessage() { 
    To = "[email protected]somewhere", 
    From = "[email protected]", 
    Subject = "My Subject", 
    Body = "My message" 
}; 

SmtpClient client = new SmtpClient("SMTP Server Address"); 
    // Naturally you change the "SMTP Server Address" to the 
    // actual SMTP server address 
client.Send(mail); 

但我建議你堅持在web.config文件(其中也可以通過ASP.NET Web配置工具進行配置)。

+0

這不起作用。 我得到一個.NET異常: 「發送郵件失敗。」 內部異常說:「{」遠程名稱無法解析:'SMTP服務器地址'「}」 – Jonathan 2009-01-20 22:01:20

相關問題