上一篇:使用VB求解华容道问题 >>
C#使用CDO发送邮件
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();
}
下一篇:读《C#入门经典》 >>
相关文章:
- · C#数据库连接字符大全
- · C#编码规范.doc
- · 用C#给程序加启动画面并只允许一个应用程序实例运行
- · 使用C#在进度条中显示复制文件的进度
- · 使用C#编写Ice应用程序
- · C#多线程共享数据
- · C#开发小技巧--对Text控件增量赋值的代码优化
- · C#实现Singleton的两种方法的比较
- · C#下的webservcie 实现代码和 在vc和python下的调用实现
- · VB中常用的数据类型和C#中数据类型的对应
- · [ASP.net(C#)]XML操作类(一)
- · 发表一个自己C#写的email 初级系统源代码
- · c#的开发环境
- · C# 1.x 实现 强类型元素唯一的 ArrayList
- · c# encrypt
- · C++编程人员容易犯的10个C#错误
- · c#中结构与类的区别
- · C# 编码规范和编程好习惯
- · (C#)数值型货币的大写转换
- · 用Visual C#实现局域网点对点通讯
- · 一段切换输入法的c#代码
- · 如何在C#中实现图片缩放
- · [ASP.NET]使用C#开发Socket通讯
- · Oracle数据库操作类(c#)
- · 在C#中使用代理的方式触发事件
- · C#写的UBB代码累
- · 几个C#编程的小技巧 (二)
- · 几个C#编程的小技巧 (一)
- · 用C#实现在客户区拖动窗体
- · C#运算符的优先顺序
- · C#中的转意字符序列
- · 索引服务调用代码(C#)
- · 刀兄写的IIS管理类(C#)
- · 一段找出URL的代码(C#)
- · C#实现的18位身份证格式验证算法
- · 掌握 C#
- · C#下用P2P技术实现点对点聊天
- · 使用Web服务将C#代码转换为VB.NET代码
