C# SendMail发送邮件功能实现
最近因为用的发送邮件的地方,就查询了资料,总结以下几个方法
1、利用新浪邮箱发送
2、利用公司邮箱发送
3、利用CDO发送,这种方式要引用Interop.ADODB.dll(http://www.nodevice.com/dll/Interop_ADODB_dll/item20357.html)和Interop.CDO.dll()两个文件
具体代码如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net.Mail; using System.Data; using CDO; using ADODB; namespace SendMailTest { class Program { static void Main(string[] args) { SendMail(); } public static string SendMsg() { DataTable dt = new DataTable(); dt.Columns.Add("name"); dt.Columns.Add("date"); dt.Columns.Add("area"); dt.Columns.Add("orgnizer"); dt.Columns.Add("keyword"); for (int i = 0; i < 10; i++) { DataRow dr = dt.NewRow(); dr["name"] = "北文中心影视产权交易平台•影视项目路演季---路演项目征集" + i; dr["date"] = "2017-06-30"; dr["area"] = "北京市 北京电影学院文创园(平房园区)" + i; dr["orgnizer"] = "北文中心影视产权交易" + i; dr["keyword"] = "影视" + i; dt.Rows.Add(dr); } string MailBody = "<p style=\"font-size: 10pt\">以下内容为系统自动发送,请勿直接回复,谢谢。</p><table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" bgcolor=\"000000\" style=\"font-size: 10pt;line-height: 15px;\">"; MailBody += "<div align=\"center\">"; MailBody += "<tr>"; for (int hcol = 0; hcol < dt.Columns.Count; hcol++) { MailBody += "<td bgcolor=\"999999\"> "; MailBody += dt.Columns[hcol].ColumnName; MailBody += " </td>"; } MailBody += "</tr>"; for (int row = 0; row < dt.Rows.Count; row++) { MailBody += "<tr>"; for (int col = 0; col < dt.Columns.Count; col++) { MailBody += "<td bgcolor=\"dddddd\"> "; MailBody += dt.Rows[row][col].ToString(); MailBody += " </td>"; } MailBody += "</tr>"; } MailBody += "</table>"; MailBody += "</div>"; return MailBody; } public static void SendMail() { MailMessage msg = new MailMessage(); msg.To.Add("xxx@ctrchina.cn"); msg.CC.Add("xxxx@sina.com"); msg.From = new MailAddress("ffff@ctrchina.cn", "ffff", System.Text.Encoding.UTF8); /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ msg.Subject = "这是测试邮件";//邮件标题 msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 //msg.Body = "邮件内容";//邮件内容 msg.Body = SendMsg(); msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 msg.IsBodyHtml = true;//是否是HTML邮件 msg.Priority = MailPriority.High;//邮件优先级 SmtpClient client = new SmtpClient(); //client.Host = "smtp.ctrchina.cn"; client.Host = "210.77.136.200"; client.Port = 465; //client.EnableSsl = true;//经过ssl加密 client.Credentials = new System.Net.NetworkCredential("xxx@ctrchina.cn", "password"); object userState = msg; try { //client.SendAsync(msg, userState); client.Send(msg); } catch (System.Net.Mail.SmtpException ex) { return; } } public static void SendSinaMail() { MailMessage msg = new MailMessage(); msg.To.Add("xxx@ctrchina.cn"); //msg.To.Add("xxx@sina.com"); msg.CC.Add("xxx@sina.com"); msg.From = new MailAddress("xxx@sina.com", "shao_sks", System.Text.Encoding.UTF8); /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/ msg.Subject = "这是测试邮件";//邮件标题 msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码 //msg.Body = "邮件内容";//邮件内容 msg.Body = SendMsg(); msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 msg.IsBodyHtml = true;//是否是HTML邮件 msg.Priority = MailPriority.High;//邮件优先级 SmtpClient client = new SmtpClient(); client.Host = "smtp.sina.com"; client.Port = 25; //client.EnableSsl = true;//经过ssl加密 client.Credentials = new System.Net.NetworkCredential("username", "password"); object userState = msg; try { //client.SendAsync(msg, userState); client.Send(msg); } catch (System.Net.Mail.SmtpException ex) { return; } } public static void SenMail1() { try { CDO.Message oMsg = new CDO.Message(); Configuration MyConfig = new ConfigurationClass(); Fields MyFields = MyConfig.Fields; MyFields[@"http://schemas.microsoft.com/cdo/configuration/sendusing"].Value = 2; MyFields[@"http://schemas.microsoft.com/cdo/configuration/smtpserverport"].Value = 465; MyFields[@"http://schemas.microsoft.com/cdo/configuration/smtpserver"].Value = "210.77.136.200"; MyFields.Update(); oMsg.Configuration = MyConfig; oMsg.Subject = "Test SMTP2911111"; oMsg.HTMLBody = SendMsg(); oMsg.From = "shaoks@ctrchina.cn"; oMsg.To = "shaoks@ctrchina.cn"; oMsg.Send(); } catch (Exception ex) { return; } } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
上一篇:C#图片处理类分享
栏 目:C#教程
下一篇:C#编程调用Cards.dll实现图形化发牌功能示例
本文标题:C# SendMail发送邮件功能实现
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/5629.html
您可能感兴趣的文章
- 01-10C#编程实现发送邮件的方法(可添加附件)
- 01-10C#怎么实现手机短信发送功能
- 01-10C#实现的自定义邮件发送类完整实例(支持多人多附件)
- 01-10使用C#编写简单的图形化的可发送附件的邮件客户端程序
- 01-10使用C#发送带附件的电子邮件的方法的代码示例分析
- 01-10C#简单邮件群发通用类
- 01-10C#简单实现在网页上发邮件的案例
- 01-10C#向无窗口的进程发送消息
- 01-10在WinForm中发送HTTP请求的实现方法
- 01-10C#模拟http 发送post或get请求的简单实例


阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频 器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10SublimeText编译C开发环境设置
- 01-11ajax实现页面的局部加载
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法实例总结
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 04-02jquery与jsp,用jquery
- 08-05织梦dedecms什么时候用栏目交叉功能?