通过C#发送邮件,可以根据自己的需求更改。

这个是个配置文件的类,可以用,也可以改,也可以不用。

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;namespace WaterCubeCheck
{[Serializable]public class dataStruct//配置结构{public stringmingcheng1 = "服务器1",mingcheng2 = "服务器2",lianjie1 = "Data Source=localhost;Initial Catalog=test;User ID=sa;Password=123456",lianjie2 = "Data Source=localhost;Initial Catalog=test;User ID=sa;Password=123456",Toaddress = "test@163.com,test1@163.com",Fromaddress = "test@139.com",Fromaddressname = "测试",MailSub = "测试",FromMailPassword = "123456",SmtpServer = "smtp.139.com";public bool issendingEmail = false;public int starttime = 9;public int endtime = 19;public int sendtime = 60;public dataStruct(){mingcheng1 = "服务器1";mingcheng2 = "服务器2";lianjie1 = "Data Source=localhost;Initial Catalog=test;User ID=sa;Password=123456";lianjie2 = "Data Source=localhost;Initial Catalog=test;User ID=sa;Password=123456";Toaddress = "test@163.com";Fromaddress = "test1@163.com";Fromaddressname = "Server";MailSub = "测试";FromMailPassword = "123456";SmtpServer = "smtp.163.com";issendingEmail = false;starttime = 9;endtime = 19;sendtime = 60;}}[Serializable]public class MailBodyCon{public stringmachStr = "";public stringpattenStr = "";public int count = 0;public MailBodyCon(){machStr = "";pattenStr = "";count = 0;}}public static class appConfig{public static dataStruct conf = new dataStruct();public static MailBodyCon body = new MailBodyCon();/// <summary>/// 保存到配置文件/// </summary>/// <returns>返回是否成功</returns>public static bool savetofile(){try{string path = AppDomain.CurrentDomain.BaseDirectory;Stream fs = new FileStream(path + "app.cfg", FileMode.OpenOrCreate);BinaryFormatter formatter = new BinaryFormatter();formatter.Serialize(fs, conf);fs.Close();}catch{}return true;}/// <summary>/// 读取配置文件/// </summary>/// <returns>返回是否成功</returns>public static bool readfromfile(){try{string path = AppDomain.CurrentDomain.BaseDirectory;Stream fs = new FileStream(path + "app.cfg", FileMode.OpenOrCreate);BinaryFormatter formatter = new BinaryFormatter();conf = (dataStruct)formatter.Deserialize(fs);fs.Close();}catch{}return true;}}
}

这个是邮件内容的拼接以及发送类。

using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;
using System.Windows.Forms;
using System.Data;
using System.IO;namespace WaterCubeCheck
{public class MailClass{/// <summary>/// 发送邮件/// </summary>/// <param name="data">邮件内容</param>public void SendStrMail(string data){try{System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();if (appConfig.conf.Toaddress.IndexOf(',') > -1){string[] mails = appConfig.conf.Toaddress.Split(',');//多个收信地址用逗号隔开for (int counti = 0; counti < mails.Length; counti++){if (mails[counti].Trim() != ""){msg.To.Add(mails[counti]);}}}else{msg.To.Add(appConfig.conf.Toaddress);//添加单一收信地址}msg.To.Add(appConfig.conf.Fromaddress);msg.From = new System.Net.Mail.MailAddress(appConfig.conf.Fromaddress, appConfig.conf.Fromaddressname, System.Text.Encoding.UTF8);/* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/string sub = appConfig.conf.MailSub;//邮件标题 if (appConfig.body.count == 0){msg.Subject = appConfig.conf.MailSub;}else{msg.Subject = data;}msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码//long tol = GateCount + HandCount;msg.Body = data;msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码 msg.IsBodyHtml = true;//是否是HTML邮件 msg.Priority = MailPriority.High;SmtpClient client = new SmtpClient();client.Credentials = new System.Net.NetworkCredential(appConfig.conf.Fromaddress, appConfig.conf.FromMailPassword);//在zj.com注册的邮箱和密码 client.Host = appConfig.conf.SmtpServer;//邮件发送服务器,上面对应的是该服务器上的发信帐号和密码object userState = msg;try{client.SendAsync(msg, userState);//开始发送}catch (System.Net.Mail.SmtpException ex){MessageBox.Show(ex.Message.ToString());}}catch (Exception ee){MessageBox.Show(ee.Message.ToString());}}}//发送带表格邮件public class SendMail{public static MailClass Mail=new MailClass();public static string LargeMailBody="";//初始化多表格邮件内容//单一表格邮件内容public static void SendMsg(DataTable data){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 < data.Columns.Count; hcol++){MailBody += "<td bgcolor=\"999999\">&nbsp;&nbsp;&nbsp;";MailBody += data.Columns[hcol].ColumnName;MailBody += "&nbsp;&nbsp;&nbsp;</td>";}MailBody += "</tr>";for (int row = 0; row < data.Rows.Count; row++){MailBody += "<tr>";for (int col = 0; col < data.Columns.Count; col++){MailBody += "<td bgcolor=\"dddddd\">&nbsp;&nbsp;&nbsp;";MailBody += data.Rows[row][col].ToString();MailBody += "&nbsp;&nbsp;&nbsp;</td>";}MailBody += "</tr>";}MailBody += "</table>";MailBody += "</div>";Mail.SendStrMail(MailBody);}//单一表格邮件内容public static void SendMsg(DataGridView data){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 < data.Columns.Count; hcol++){MailBody += "<td bgcolor=\"999999\">&nbsp;&nbsp;&nbsp;";MailBody += data.Columns[hcol].HeaderText.ToString();MailBody += "&nbsp;&nbsp;&nbsp;</td>";}MailBody += "</tr>";for (int row = 0; row < data.Rows.Count; row++){MailBody += "<tr>";for (int col = 0; col < data.Columns.Count; col++){MailBody += "<td bgcolor=\"dddddd\">&nbsp;&nbsp;&nbsp;";MailBody += data.Rows[row].Cells[col].Value.ToString();MailBody += "&nbsp;&nbsp;&nbsp;</td>";}MailBody += "</tr>";}MailBody += "</table>";MailBody += "</div>";Mail.SendStrMail(MailBody);}//多表格邮件内容public static void SendLargeMsg(DataTable data,string title=""){if (title != "")LargeMailBody += "<p style=\"font-size: 10pt\">"+title+"</p>";LargeMailBody += "<div align=\"center\">";LargeMailBody += "<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" bgcolor=\"000000\" style=\"font-size: 10pt;line-height: 15px;\">";LargeMailBody += "<tr>";for (int hcol = 0; hcol < data.Columns.Count; hcol++){LargeMailBody += "<td bgcolor=\"999999\">&nbsp;&nbsp;&nbsp;";LargeMailBody += data.Columns[hcol].ColumnName;LargeMailBody += "&nbsp;&nbsp;&nbsp;</td>";}LargeMailBody += "</tr>";for (int row = 0; row < data.Rows.Count; row++){LargeMailBody += "<tr>";for (int col = 0; col < data.Columns.Count; col++){LargeMailBody += "<td bgcolor=\"dddddd\">&nbsp;&nbsp;&nbsp;";LargeMailBody += data.Rows[row][col].ToString();LargeMailBody += "&nbsp;&nbsp;&nbsp;</td>";}LargeMailBody += "</tr>";}LargeMailBody += "</table><br>";LargeMailBody += "</div>";}//多表格邮件内容public static void SendLargeMsg(DataGridView data, string title = ""){if (title != "")LargeMailBody += "<p style=\"font-size: 10pt\">" + title + "</p>";LargeMailBody += "<div align=\"center\">";LargeMailBody += "<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" bgcolor=\"000000\" style=\"font-size: 10pt;line-height: 15px;\">";LargeMailBody += "<tr>";for (int hcol = 0; hcol < data.Columns.Count; hcol++){LargeMailBody += "<td bgcolor=\"999999\">&nbsp;&nbsp;&nbsp;";LargeMailBody += data.Columns[hcol].HeaderText.ToString();LargeMailBody += "&nbsp;&nbsp;&nbsp;</td>";}LargeMailBody += "</tr>";for (int row = 0; row < data.Rows.Count; row++){LargeMailBody += "<tr>";for (int col = 0; col < data.Columns.Count; col++){LargeMailBody += "<td bgcolor=\"dddddd\">&nbsp;&nbsp;&nbsp;";LargeMailBody += data.Rows[row].Cells[col].Value.ToString();LargeMailBody += "&nbsp;&nbsp;&nbsp;</td>";}LargeMailBody += "</tr>";}LargeMailBody += "</table><br>";LargeMailBody += "</div>";}}}

调用的时候用这个方法

        private void button1_Click(object sender, EventArgs e){t1 = databind(qishishijian.Value, jieshushijian.Value);t2 = databind1(qishishijian.Value, jieshushijian.Value);SendMail.LargeMailBody = "";try{SendMail.SendLargeMsg(t1, "测试内容1);SendMail.SendLargeMsg(t2, "测试内容2");SendMail.Mail.SendStrMail("<p style=\"font-size: 10pt\">以下内容为系统自动发送,请勿直接回复,谢谢。</p>" + SendMail.LargeMailBody);}catch { MessageBox.Show("没有可以发送的内容!"); }}

通过C#发送自定义的html格式邮件相关推荐

  1. 【springboot】springboot发送email(文本/html格式)邮件

    前言 现在发送邮件是一个网站必备的功能,比如注册激活,或者忘记密码等等都需要发送邮件.正常我们会用JavaMail相关api来写发送邮件的相关代码,但现在springboot提供了一套更简易使用的封装 ...

  2. Java Mail+Thymeleaf模板引擎实现发送HTML格式邮件

    Java Mail+Thymeleaf模板引擎实现发送HTML格式邮件 基于Spring boot 1.5,Spring boot 2.x请使用Spring boot mail 1.依赖坐标 // b ...

  3. 两封邮件合并转发_用Python发送自定义电子邮件

    电子邮件仍然是生活中的一个事实.尽管存在各种缺陷,但它仍然是向大多数人发送信息的最佳方式,尤其是以允许消息排队等待收件人的自动化方式. 我的工作重点之一是Feddora社区行动和影响协调员给人们一个关 ...

  4. Java使用QQ邮箱或网易163邮箱发送自定义CSS样式邮件

    Java使用QQ邮箱或网易163邮箱发送自定义CSS样式邮件 前言 一.战前准备 1.导入依赖 2.配置文件 3.邮箱工具类 二.战争开始 1.QQ邮箱发送 2.网易邮箱发送 战后反思 前言 我们可能 ...

  5. mail message 支持html,html格式邮件发送通过stmp

    importjava.io.FileOutputStream; importjava.util.Date; importjava.util.Properties; importjavax.mail.M ...

  6. python发送html邮件样式变了_Python自动发送HTML格式邮件

    要活成两种样子:发光和不发光,不发光的时候都是在为发光做准备 这篇我们继续,python如何实现自动发送HTML格式邮件的~ 邮件正文发汇总数据,附件发明细数据,这才是python邮件自动化的正确打开 ...

  7. cxf拦截器,实现对接收到的报文和发送出去的报文格式自定义

    看此篇文章之前可以看看我的这篇文章,有助于更好的理解webservice和这篇文章 http://blog.csdn.net/zhaofuqiangmycomm/article/details/787 ...

  8. java使用smtp发送html格式邮件

    java 使用 smtf 发送html格式 邮件 Smtp邮件篇 java发送邮件 第一步 1.以网易邮箱为例,首先需要授权邮箱账号可以支持smtp: 开启之后我们需要生成邮箱第三方登陆的授权码,完成 ...

  9. Java发送内嵌图片的邮件

    使用Java发送邮件时,既需要发送html文档又需要在邮件中内嵌图片(非附件形式),这里封装了一个类使用JavaMail组织的邮件发送,支持多张图片发送,并指定图片位置.注意img标签src要如下写& ...

最新文章

  1. 国内外最好用的9大工作任务管理软件
  2. 2019年首期“医工结合科研创新支持计划”项目申报获批:医工携手 强校强国...
  3. 在Android中使用OpenGL ES开发第(五)节:GLSL基础语法
  4. 【NLP】词嵌入基础和Word2vec
  5. Python之简单验证码实现
  6. centos7开启vnc服务_阿里云CentOS 7搭建VNC远程桌面服务步骤方法
  7. 韦东奕:被数学“选中”的天才
  8. YGC问题排查,又让我涨姿势了!
  9. 新手找客户,牢记20句话
  10. 吴恩达机器学习作业Python实现(七):K-means和PCA主成分分析
  11. 面对 996,程序员如何利用“碎片时间”涨薪?
  12. Virtualbox主机与虚拟机相互访问
  13. python扫描局域网端口和ip_Python实现扫描局域网活动ip(扫描在线电脑)
  14. html粘性导航原理,position:sticky粘性定位
  15. 微信小程序最简单的轮播图
  16. 打开天正建筑显示服务器为空,打开天正提示找不到可用cad版本 - 卡饭网
  17. MVG读书笔记——单应矩阵估计这件小事(二)
  18. Word输入一个字,后面就会消失一个字,该怎么办
  19. layUI基本使用2(js)
  20. excel导出文件加密

热门文章

  1. C++KMP算法字符串匹配(附完整源码)
  2. c++语句和流程控制
  3. 关于计算机专业的作文800字,我的电脑作文800字范文
  4. linux 命令行 ctrl z,Linux操作系统下运行命令时CTRL+Z的作用
  5. 2、垃圾回收算法(标记清除算法、复制算法、标记整理算法和分代收集算法),各种垃圾收集器讲解(学习笔记)
  6. 1、win10下连接本地系统上的Linux操作系统(分别以Nat方式和桥接模式实现)
  7. 检索数据_11_限制返回的行数
  8. 最小二乘法(一元)推导
  9. php插入成功数据不显示,PHP插入数据不成功,什么原因呢?
  10. 用python将数据标准化