簡體   English   中英

從.NET應用程序發送電子郵件的最佳方式?

[英]Best way to send an email from a .NET application?

我正在開發一個Windows Forms(.NET 3.5)應用程序,它有一個內置的異常處理程序來捕獲可能出現的任何(天堂禁止)異常。 我希望異常處理程序能夠提示用戶單擊“ 發送錯誤報告”按鈕,這將導致應用程序向我的FogBugz電子郵件地址發送電子郵件。

什么是最好的方法,有什么“陷阱”需要注意?

您不必擔心客戶端憑據,只需使用Esteban建議的SmtpClient。 您將需要用戶在配置時提供有效的Smtp服務器URL,但大多數ISP允許匿名smtp,只要用戶在其網絡(即其客戶端)中放入url,那么大多數ISP都會人們不會有任何問題。

注意:.config文件的預定義部分用於存儲SmtpClient對象的配置選項。 如果您將設置放在那里,則在發送電子郵件時不必在代碼中明確設置任何內容。 該部分的一個例子如下:

<system.net>
   <mailSettings>
      <smtp deliveryMethod="Network" from="stuff@somewhere.com.au">
         <network host="smtp.somewhere.com.au" />
      </smtp>
   </mailSettings>
</system.net>

用戶名和密碼是可選的。 Intellisense適用於配置文件的這些部分。

編輯:對我的代碼示例稍作修改。

您將要使用此處概述的SmtpClient類。
沒有陷阱 - 發送電子郵件就像它一樣容易。

在受控環境中,使用SmtpClient就是答案。 但是在用戶的計算機上,您需要一個SMTP服務器才能發送。

您可以提示用戶輸入他們的SMTP憑據,但我認為這對您的案例來說是不切實際的。 作為用戶,我不想將我的SMTP憑據提供給隨機應用程序(想想垃圾郵件)。 您也不希望將自己的SMTP憑據硬編碼到應用程序中,惡意用戶嗅探這些憑據並使用您的服務器發送垃圾郵件也是微不足道的。

理想情況下,您可以使用用戶的郵件代理發送電子郵件。 我以為你可以制定並執行mailto:URL,但我不確定你是否能夠為消息指定正文或任何附件。

你提到你正在使用Fogbugz。

請嘗試http://www.fogcreek.com/FogBugz/docs/60/topics/customers/BugzScout.html?isl=59722http://www.fogcreek.com/FogBugz/blog/post/C-wrapper-for -the-FogBugz的-API.aspx?ISL = 59722

我想在你的FB安裝目錄中有一些示例代碼。 我和Michael Pryor一起檢查了許可證,他說使用他們的代碼是好的,但YMMV,所以我檢查。

它提供了一個很好的起點。

您可能還想查看第三方aspNetEmail庫,它提供了許多有用的功能,可以在System.Net.Mail上面提供。

您將要使用此處概述的SmtpClient類。 沒有陷阱 - 發送電子郵件就像它一樣容易。

廣泛的System.Net.Mail FAQ位於這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM