C#使用CDO發送郵件

來源:互聯網
上載者:User
可以引用的COM組件列表,發現裡面有一個名為Microsoft CDO For Exchange 2000 Library的COM組件,就是這個,我們可以用它來串連SMTP Server,使用使用者名稱/密碼驗證發送郵件。

下面是實現的一個例子:

Smtp Server使用的Smtp-SRV,登陸使用者名稱是David Euler,發送郵箱是davidEuler@test.com,發送到test@test.com/

1).資源管理員裡面,添加引用(reference),添加Microsoft CDO For Exchange 2000 Library的COM組件;

2). 編輯使用者介面如,依次添加FromTextBox,ToTextBox,CCTextBox,BCCTextBox,SubjectTextBox, MessageTextBox,PasswordTextBox,smtpTextBox,設定MessageTextBox的TextMode屬性為 “MultiLine“, PasswordTextBox的TextMode屬性為“Password“,並添加響應提示標籤,添加發送按鈕Send。

3).輸入使用者名稱,密碼,smtp server之後,使用者點擊Send按鈕發送郵件,
Send 按鈕的Click事件代碼如下:

CDO.Message oMsg = new CDO.Message();
//oMsg.From = FromTextBox.Text ;
oMsg.To = ToTextBox.Text ;
oMsg.Subject = SubjectTextBox.Text ;
oMsg.TextBody = MessageTextBox.Text ;
oMsg.CC=CCTextBox.Text ;
oMsg.BCC=BCCTextBox.Text ;
string UserName;
string emailFrom;
string Password=PasswordTextBox.Text.ToString().Trim();

UserName=FromTextBox.Text.Trim();
emailFrom=UserName.Replace(" ","")+"@Test.com";
oMsg.From=emailFrom;

CDO.IConfiguration iConfg;
ADODB.Fields oFields;
iConfg = oMsg.Configuration;
oFields = iConfg.Fields;

oFields["http://schemas.microsoft.com/cdo/configuration/sendusing"].Value=2;
oFields["http://schemas.microsoft.com/cdo/configuration/sendemailaddress"].Value=emailFrom;
oFields["http://schemas.microsoft.com/cdo/configuration/smtpuserreplyemailaddress"].Value=emailFrom;
oFields["http://schemas.microsoft.com/cdo/configuration/smtpaccountname"].Value=UserName;
oFields["http://schemas.microsoft.com/cdo/configuration/sendusername"].Value=UserName;
oFields["http://schemas.microsoft.com/cdo/configuration/sendpassword"].Value=Password;
oFields["http://schemas.microsoft.com/cdo/configuration/smtpauthenticate"].Value=1;
oFields["http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value=smtpTextBox.Text.Trim(); //smtp.163.com
oFields.Update();

try
{
oMsg.Send();
oMsg = null;
Response.Write("<script>alert('"+ "郵件發送成功!" +"');</script>");
}
catch (Exception ex)
{
Response.Write("<script>alert('"+ "發送失敗:" +"');</script>");

string exMsg="UserName:"+UserName+
" Passwd:"+Password+
" Smtp:"+smtpTextBox.Text.Trim();

Response.Write("<script>alert('"+ exMsg +"');</script>");
failedLabel.Text=ex.Message.ToString();
} ......


 

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1539991

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.