C#使用CDO发送邮件

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

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();
   }


asp使用CDO.Message发送邮件详细代码集合

 发送文本Email: 1 2 Set myMail=CreateObject("CDO.Message") ...
  • kirawoo
  • kirawoo
  • 2017年07月06日 14:25
  • 399

asp 发送邮件 cdo.message

  • 2012年02月15日 22:43
  • 3KB
  • 下载

一个不需要CDO和IIS发送邮件的例子

下面的例子是转载国外的,可以实现不使用CDO和IIS发送邮件。说明:本例子没有经过测试,原地址在: http://www.dotnetforums.net/t81508.html  VB....
  • my98800
  • my98800
  • 2016年07月30日 11:59
  • 239

C#邮件发送CDO的COM组件发送方式

终极解决方案 - 1、使用阿里邮箱 - 2、使用CDO的COM组件发送
  • jmhappy
  • jmhappy
  • 2017年03月17日 16:00
  • 364

ASP使用CDO对象发送电子邮件

环境Windows Server  2003R2 英文版,Plesk服务器管理器,邮件服务用的是MailEnalbe,IIS没有开SMTP。     因为美帝的一次机房事故,导致我们在洛杉矶的服务器...
  • Donthan
  • Donthan
  • 2012年03月04日 01:02
  • 1099

VisualBasic使用CDO发送SSL加密邮件【我TM还是太年轻了】

我tm还是太连青了 前两天跟几个Hi-Fi玄学家聊常识,对方甩出“你丫算根葱”...
  • Fletin
  • Fletin
  • 2014年09月28日 17:40
  • 1937

C#使用SMTP服务器发送邮件

  • 2014年03月31日 22:16
  • 24KB
  • 下载

C#使用gmail发送邮件

最近在做邮箱验证的功能,找了好多代码,还是不能进入
  • dasgk
  • dasgk
  • 2014年05月17日 13:17
  • 1136

C#使用MailMessage发送邮件

  • 2011年12月16日 13:28
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#使用CDO发送邮件
举报原因:
原因补充:

(最多只允许输入30个字)