C#使用CDO发送邮件

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Author:David Euler

Date: 2004/11/18

Email:de_euler-david@yahoo.com.cn

有任何问题,请与我联系:)

一直想做实现一个程序,定期给自己发送邮件,或者给朋友发送邮件;比如在节日或者纪念日前若干天,发送邮件给自己提醒,或者朋友生日前夕发邮件提醒。找了很长时间,都没有找到可用的资料。

CSDN上查到可以用CDO,有一篇文章说“在reference中添加CDO for Windows 2000 ”,于是在引用里面找,也没有找到一个名字以CDO开头的组件,下午的时候仔细看了一下可以引用的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();

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航