用C#(ASP.Net)在Exchange Server環境下發送郵件

來源:互聯網
上載者:User

標籤:style   blog   class   c   code   java   

普通的郵件, 用System.Net.Mail 類 或 System.Web.Mail 類 處理即可, 但是Exchange Server 環境下, 這兩個類起不了作用-------至少目前我看到的情況如此.

整個過程如下:

1. 先添加COM 引用 "Microsoft CDO for Windows 2000 Library" .
2. 發送郵件的代碼:
 

CDO.Message msg = new CDO.Message();        string passWord="passWord";        string from = "[email protected]";        string server = "192.168.0.0";//使用HTML格式發送

msgLync.BodyPart.Charset = "gb2312";  //編碼,確保內容不會亂碼
msgLync.HTMLBody = "<div style=‘color:red‘>你好嗎。。。來自伺服器自動發送郵件</div>";

        msg.From = from;        msg.To = from;        msg.Subject = "test mail";        msg.TextBody = "test.";         CDO.IConfiguration iConfig = msg.Configuration;        ADODB.Fields fields = iConfig.Fields;         fields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 2;        fields["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"].Value = from;        fields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value = passWord;        fields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"].Value = 1;        fields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = server;         fields.Update();         try        {            msg.Send();            msg = null;        }        catch (Exception ex)        {            throw;        } 其中, fields的這五個屬性是它所有可選屬性的最緊的一個子集, 即,這五個屬性是缺一不可的, 其它的屬性還有:http://schemas.microsoft.com/cdo/configuration/smtpaccountnamehttp://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddresshttp://schemas.microsoft.com/cdo/configuration/sendusername等.

奇怪的是, msg 本身也有fields 屬性, 或者如同程式中引用的: msg.Configuration.Fields, 但是如果不用上述程式中的方法, 而是直接引用 msg的Fields 或 msg.Configuration.Fields 屬性, 則不能成功發送郵件, (沒有錯誤或異常, 但是收不到郵件) 為什麼會這樣, 有點費解.

fields 的smtpauthenticate 屬性的取值也是挺有意思的, 當它取0時, 代表無需驗證, 1代表基本的驗證, 2是NTLM驗證, 可是我在Outlook裡把驗證方式設為NTLM, 而在這裡把值取為1, 一樣能夠發送成功, 呵呵, 看來一般情況下取1 都是可以的了.

sendUsing 取2 的意思是, 強制通過smtpServer 屬性指定的server 發送郵件, 所以只要server屬性設定好, sendUsing取2 基本就是通用值了.

server屬性設為exchange server 的IP 位址即可.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.