C#邮件提醒
来源:互联网 发布:网游网络加速器哪个好 编辑:程序博客网 时间:2024/05/01 12:42
1.webconfig配置邮件基本信息
<!--系统邮件发送设置--> <add key="eMailServer" value="IP地址" /> <add key="eMailSenderUsername" value="??" /> <add key="eMailSenderPassword" value="??" /> <!--程序出错监测人邮箱地址--> <add key="MonitorPerson" value="qqq@123.com;www@123.com;" />
2.common类中调用webconfig信息
/// <summary> /// 设置发送邮件的用户的用户名 /// </summary> public static string eMailSenderUsername { get { if (!ConfigurationManager.AppSettings.AllKeys.Contains("eMailSenderUsername" + _RunSetSuffix)) { throw new Exception("请检查Web.config文件,appSettings节点是否存在eMailSenderUsername" + _RunSetSuffix + "节点。"); } return ConfigurationManager.AppSettings["eMailSenderUsername" + _RunSetSuffix]; } } /// <summary> /// 设置发送邮件的用户的密码 /// </summary> public static string eMailSenderPassword { get { if (!ConfigurationManager.AppSettings.AllKeys.Contains("eMailSenderPassword" + _RunSetSuffix)) { throw new Exception("请检查Web.config文件,appSettings节点是否存在eMailSenderPassword" + _RunSetSuffix + "节点。"); } return ConfigurationManager.AppSettings["eMailSenderPassword" + _RunSetSuffix]; } }
3.申明邮件类
public class EMail { private MailMessage mMailMessage; //主要处理发送邮件的内容(如:收发人地址、标题、主体、图片等等) private SmtpClient mSmtpClient; //主要处理用smtp方式发送此邮件的配置信息(如:邮件服务器、发送端口号、验证方式等等) private int mSenderPort = 25; //发送邮件所用的端口号(htmp协议默认为25) private string mSenderServerHost = Config.eMailServer; //发件箱的邮件服务器地址(IP形式或字符串形式均可) private string mSenderUsername = Config.eMailSenderUsername; //发件箱的用户名(即@符号前面的字符串,例如:hello@163.com,用户名为:hello) private string mSenderPassword = Config.eMailSenderPassword; //发件箱的密码 private bool mEnableSsl = false; //是否对邮件内容进行socket层加密传输 private bool mEnablePwdAuthentication = true; //是否对发件人邮箱进行密码验证 /// <summary> /// 构造函数 /// </summary> /// <param name="fromMail">发件人</param> /// <param name="toMail">收件人,多个收件人之间用';'分隔</param> /// <param name="CCMail">抄送人,多个收件人之间用';'分隔</param> /// <param name="emailSubject">标题</param> /// <param name="emailBody">正文</param> /// <param name="emailAnnex">附件相对地址</param> public EMail(string fromMail, string toMail, string CCMail, string emailSubject, string emailBody, string emailAnnex) { try { mMailMessage = new MailMessage(); string[] tempTo = toMail.Split(';'); if (tempTo.Length > 0) { for (int i = 0; i < tempTo.Length; i++) { if (!string.IsNullOrEmpty(tempTo[i])) { mMailMessage.To.Add(tempTo[i]); } } } if (!string.IsNullOrEmpty(CCMail)) { string[] tempCC = CCMail.Split(';'); if (tempCC.Length > 0) { for (int i = 0; i < tempCC.Length; i++) { if (!string.IsNullOrEmpty(tempCC[i])) { mMailMessage.CC.Add(tempCC[i]); } } } } mMailMessage.From = new MailAddress(fromMail); mMailMessage.Subject = emailSubject; mMailMessage.Body = emailBody; mMailMessage.IsBodyHtml = true; mMailMessage.BodyEncoding = System.Text.Encoding.UTF8; mMailMessage.Priority = MailPriority.Normal; if (!string.IsNullOrEmpty(emailAnnex) && File.Exists(emailAnnex)) { //构造一个附件对象 Attachment attach = new Attachment(emailAnnex); //得到文件的信息 ContentDisposition disposition = attach.ContentDisposition; disposition.CreationDate = File.GetCreationTime(emailAnnex); disposition.ModificationDate = File.GetLastWriteTime(emailAnnex); disposition.ReadDate = File.GetLastAccessTime(emailAnnex); //向邮件添加附件 mMailMessage.Attachments.Add(attach); } } catch (Exception e) { //Console.WriteLine(e.Message); throw e; } } /// <summary> /// 邮件的发送 /// /// </summary> public void Send() { try { if (mMailMessage != null) { mSmtpClient = new SmtpClient(); mSmtpClient.Host = this.mSenderServerHost; mSmtpClient.Port = this.mSenderPort; mSmtpClient.UseDefaultCredentials = false; //不适用默认凭证 mSmtpClient.EnableSsl = this.mEnableSsl; if (this.mEnablePwdAuthentication) { System.Net.NetworkCredential nc = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword); //身份凭证 mSmtpClient.Credentials = nc.GetCredential(mSmtpClient.Host, mSmtpClient.Port, "NTLM");//身份凭证 } else { mSmtpClient.Credentials = new System.Net.NetworkCredential(this.mSenderUsername, this.mSenderPassword);//身份凭证 } mSmtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; //发送方式为网络发送 mSmtpClient.Send(mMailMessage); //发送 } } catch (Exception e) { //Console.WriteLine(e.Message); throw e; } } }
4.调用Email类
#region 邮件提醒 /// <summary> /// 邮件提醒 /// </summary> /// <param name="info"></param> public static void sendEmail(string info) { //遍历同步失败的数据,给IT管理人员发邮件通知 StringBuilder sb = new StringBuilder() .Append("<body style=\"margin: 10px; font-size: 12pt;\">") .Append(" <div>您好:</div>") .Append(" <div style=\"text-indent: 2em;\">以下信息同步,请及时查询!</div>") .Append(" <div style=\"text-indent: 2em;\"> </div>") .Append(" <div style=\"margin-left: 2em;\">"); sb.AppendFormat("异常编号:{0}<br />", info); //发送提醒邮件 EMail email = new EMail( "mossadmin@hitechsemi.com", //系统发送的 Config.MonitorPerson, //提醒邮件接收者 null, //抄送人收件箱地址 "信息同步失败!", //邮件标题 sb.ToString(), //邮件正文 null); //附件 email.Send(); } #endregion
0 0
- C#邮件提醒
- c# 腾讯企业邮箱 邮件提醒和一键登录
- 额。。。邮件提醒~~
- 来电邮件提醒
- redmine 发送提醒邮件
- oracle邮件提醒
- jenkins的邮件提醒
- 邮件提醒功能
- firefox 邮件提醒
- centOS邮件提醒
- linux 定时邮件提醒
- java邮件提醒实现
- [易飞]六、邮件提醒-采购提醒集
- WSS Alert(邮件提醒) 定制
- 第三章:nagios邮件提醒
- oracle EM 监控邮件提醒
- Gitlabr如何设置邮件提醒?
- python邮件提醒停电时间
- shell 相关的基础知识
- 常量值
- 【Hadoop】HBase框架学习之路
- android软件盘管理
- redis 安装
- C#邮件提醒
- 技术人员如何创业《一》—— 产品及想法(转载)
- html5 创建表格
- 第三章 数据和C:转义序列
- docker 问答
- redis 主从
- ios 1.5版本 账号与安全(unique 编码转换,URLencode编码转换,密码格式的限制)
- 字符串/hashtable——leetcode205
- redis 数据