C# SendMail发送邮件功能实现

作者:shaomine 时间:2022-05-02 19:40:43 

最近因为用的发送邮件的地方,就查询了资料,总结以下几个方法

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\">&nbsp;&nbsp;&nbsp;";
 MailBody += dt.Columns[hcol].ColumnName;
 MailBody += "&nbsp;&nbsp;&nbsp;</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\">&nbsp;&nbsp;&nbsp;";
  MailBody += dt.Rows[row][col].ToString();
  MailBody += "&nbsp;&nbsp;&nbsp;</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#,SendMail,发送邮件
0
投稿

猜你喜欢

  • java采用中文方式显示时间的方法

    2021-07-24 03:04:34
  • OpenFeign设置header的三种方式总结

    2023-06-25 19:03:46
  • 在C#中创建和读取XML文件的实现方法

    2021-12-20 08:10:45
  • Java 入门图形用户界面设计之复选框

    2022-06-19 15:22:53
  • java实现字符串反转案例

    2021-11-20 04:45:55
  • Maven继承与聚合详解及作用介绍

    2023-03-08 00:14:36
  • Spring Boot Security 结合 JWT 实现无状态的分布式API接口

    2021-06-04 05:01:17
  • 解析Java设计模式编程中命令模式的使用

    2023-11-12 04:49:45
  • Java对zip,rar,7z文件带密码解压实例详解

    2023-11-29 05:08:32
  • iOS中的导航栏UINavigationBar与工具栏UIToolBar要点解析

    2023-07-08 16:52:22
  • java使用websocket,并且获取HttpSession 源码分析(推荐)

    2023-08-04 17:38:05
  • Android使用Rotate3dAnimation实现3D旋转动画效果的实例代码

    2023-07-30 12:21:29
  • Java Timer使用讲解

    2023-11-28 20:30:33
  • Java深入浅出理解快速排序以及优化方式

    2023-01-17 13:50:44
  • Java 中的 xx ≠ null 是什么新语法

    2022-09-10 20:51:13
  • 详解Spring Boot 事务的使用

    2022-08-09 01:59:07
  • IntelliJ IDEA 15款超级牛逼插件推荐(自用,超级牛逼)

    2023-10-10 05:51:22
  • Java中利用gson解析Json实例教程

    2023-10-31 04:07:41
  • 简单学习Java抽象类要点及实例

    2021-10-11 09:08:12
  • C#特性-迭代器(上)及一些研究过程中的副产品

    2023-12-05 18:26:49
  • asp之家 软件编程 m.aspxhome.com