如何使用 System.Web.mail 啟用 SMTP 驗證

文章翻譯 文章翻譯
文章編號: 555287 - 檢視此文章適用的產品。
作者?Carlos Walzer MVP
全部展開 | 全部摺疊

結論

本文告訴您如何從 . NET 應用程式透過 SMTP 伺服器需要驗證傳送電子郵件。

徵狀

Exchange Server 需要, 預設, 已驗證的使用者 才能傳送郵件經由 SMTP 電子郵件。 如果您正在開發 . NET 應用程式會發現的 API, 可讓您提供認證以連線至 SMTP 伺服器並沒有包含 System . Web . Mail 。 在內部會呼叫 System.Web.mail Microsoft Collaboration Data Objects CDOSYS ? 。 可能的 SMTP 驗證是藉由定義使用 組態 物件與 訊息 CDO 物件相關聯的組態設定。
?

其他相關資訊

System . Web . Mail 命名空間提供的 API 讓您可以使用 CDOSYS (共同作業資料物件為 Windows 2000) 訊息 元件建立和傳送訊息。 透過 SMTP 伺服器傳遞之郵件訊息。
大部分的 SMTP 伺服器安裝需要驗證。 主要原因為這是因為用來為 SPAMing abusing SMTP 伺服器使用者 (也就是, 傳送出來路不明的垃圾郵件)
System . Web . Mail 命名空間類別會不公開的 API 以提供 認證 以 SMPT 伺服器。 還是可以藉由定義組態設定為該 組態物件 關聯到 訊息 CDO 達到這。 是組態設定的一組 欄位 (屬性) 只是名稱 / 值組所組成。 用於訊息處理大部分的組態欄位位於 http://schemas.microsoft.com/cdo/configuration/ 命名空間。
您可以設定欄位至訊息透過新增它們到 System.Web.Mail.MailMesage.Fields 集合。
?
設定 Message 物件來設定 SMTP AuthenticationTo CDO 欄位, 您修改關聯的組態物件中的欄位。 大部分欄位名稱位於 http://schemas.microsoft.com/cdo/configuration/ 命名空間:
  • smtpserver : SMTP 伺服器名稱
  • smtpserverport 25: 預設 (SMTP 伺服器連接埠)
  • sendusing : cdoSendUsingPort, 2, 值為使用網路上傳送訊息
  • smtpauthenticate : 指定至的 SMTP 服務透過網路驗證時所使用機制 可能值如下:
    - cdoAnonymous , 值 0 不驗證.
    - cdoBasic , 值 1 使用基本 純文字 驗證。 使用此選項時, 您必須提供使用者名稱和密碼到 sendpassword sendusername 和欄位。
    - cdoNTLM , 值 2 目前處理序安全性內容 是用來驗證與服務。
  • sendusername 使用者名稱:
  • sendpassword 密碼:

?
範例
在下列範例顯示如何傳送電子郵件透過 SMTP 伺服器, 需要透過網路驗證伺服器藉由提供純文字中的認證。
?
using System;
using System.Web.Mail;
namespace SMTPAuthentication
{
?public class SMTPAuthenticationExample
?{
??public static void SendMail()
??{
???string smtpServer = "smtp.domain.com";
???string userName = "johnDoe";
???string password = "pass";
???int cdoBasic = 1;
???int cdoSendUsingPort = 2;
???MailMessage msg = new MailMessage();
???if (userName.Length > 0)
???{
????msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserver", smtpServer);
????msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 25) ;
????msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusing", cdoSendUsingPort) ;
????msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", cdoBasic);
????msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", userName);
????msg.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", password);?
???}
???msg.To = "someone@domain.com";
???msg.From = "me@domain.com";
???msg.Subject = "Subject";
???msg.Body = "Message";
???SmtpMail.SmtpServer = smtpServer;
???SmtpMail.Send(msg);
??}
?}
}
?
請注意: System . Web . Mail 命名空間 的類別可以用來從 ASP . NET 或從任何 Managed 應用程式請確定, 您的專案參考 System . Web . dll 組件
?
參考:
如需 Collaboration Data Objects 造訪的資訊:
http://msdn.microsoft.com/library/en-us/exchanchor/htms/msexchsvr_cdo_top.asp
?
如需有關 System . Web . Mail 更多資訊請造訪: 命名空間
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwebmail.asp

屬性

文章編號: 555287 - 上次校閱: 2005年4月7日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft .NET Framework 1.1
關鍵字:?
kbpubmvp kbpubtypecca kbhowto KB555287 KbMtzh kbmt
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。如果您發現錯誤,並想要協助我們進行改善,請填寫本篇文章下方的問卷。
按一下這裡查看此文章的英文版本:555287
社區解決方案內容免責聲明
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com