C#使用CDO发送邮件

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

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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
VB CDO (Collaboration Data Objects) 是一种用于在VB语言中接收邮件的编程接口。使用VB CDO可以方便地连接到邮件服务器并接收电子邮件。 首先,我们需要在VB项目中添加CDO库的引用。它可以在“项目”菜单中的“引用”选项中找到。我们需要选择"CDO for Windows Library"以使用CDO的功能。 接下来,我们需要在VB代码中实例化一个CDO对象,用于连接到邮件服务器。使用以下代码可以创建一个CDO.Session对象: ``` Dim objSession As CDO.Session Set objSession = CreateObject("MAPI.Session") ``` 接下来,我们需要通过设置Session对象的属性来配置连接信息。例如,我们可以设置邮件服务器的名称和端口号,设置用户名和密码等。以下是一个设置连接信息的示例代码: ``` objSession.Logon , , False, True, , False objSession.CMAPIFlags = CdoCMAPILogon objSession.MapiProfile = "username" ``` 然后,我们可以使用Session对象的GetDefaultFolder方法来获取收件箱(Inbox)文件夹的引用。以下是一个获取收件箱的示例代码: ``` Dim objFolder As CDO.IFolder Set objFolder = objSession.GetDefaultFolder(CdoDefaultFolderInbox) ``` 最后,我们可以遍历收件箱中的所有邮件,读取邮件的主题、发件人、收件人等信息。以下是一个读取邮件信息的示例代码: ``` Dim objMessage As CDO.Message For Each objMessage In objFolder.Messages MsgBox "主题:" & objMessage.Subject & vbCrLf & "发件人:" & objMessage.SenderName Next objMessage ``` 以上就是使用VB CDO接收邮件的基本步骤。通过实例化CDO对象、配置连接信息、获取文件夹引用以及遍历邮件来读取信息,我们可以轻松地在VB中接收邮件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值