当前位置:绿色下载绿色下载文章资讯技术开发C#专区

C#使用CDO发送邮件

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2014-07-24 16:41:15

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,使用用户名/密码验证发送邮件。

下面是实现的一个例子:
C#使用CDO发送邮件
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";
\t    oMsg.From=emailFrom;
\t    
  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\t\t      
  oFields.Update();  

  try  
  {\t      
   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();
  }


 

 

Tags:CDO 发送邮件 reference

作者:佚名
0 0

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论