惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 寒枫

network plugin is not ready: cni config uninitialized Unable to connect to the server: x509: certificate signed by unknown authority Abp VNext 5.1.3 快速實現數據庫初始化 Centos 卸载 MySQL 已激活的 SQL Prompt 提示授权过期 .NET Core 3.0 部署在docker上运行 Docker 微服务教程 Docker 入门教程 快速了解 Linux系统信息 Navicat 连接本地MS-SQL服务器,只能用localhost无法使用127.0.0.1 安装Ubuntu Server 18.04 并支持远程方式 AdventureWorks 安装和配置[转自 微软msdn] SQL Server 2014 Agent 无法启动 安装 Visual Stuidio 2010 失败 解决VS2013调试ASP.NET中无法调试的问题:当前不会命中断点。在 XXXX.dll 中找到了 XXX.cs 的副本,但是当前源代码与 XXXX.dll 中内置的版本不同。 编译器错误消息: CS0016: 未能写入输出文件 如何使用SQL Server链接服务器访问DB2 Server 另类方法解决设计Web页面出现:Error Creating Control [转载]hao123军事频道首页JQ焦点图
发送邮件的例子
寒枫 · 2016-08-01 · via 博客园 - 寒枫

1、配置文件

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <!--1:是调试状态 0或者其他-->
    <add key="DebugStatus" value="1"/>
    <!--发送测试邮件接收地址 调试用-->
    <add key="DebugEmail" value="autumn@cnblogs.com"/>
    <!--是否写日志 0或者其他 否 1是 -->
    <add key="IsWriteServiceLog" value="1" />
    <!--是否写信息到日志 0或者其他 是 1否 -->
    <add key="IsWriteInfoLog" value="0" />
    <!--单位秒-->
    <add key="Mail_TimerInterval" value="120" />
  </appSettings>

  <system.net>
    <mailSettings>
      <smtp from="XXXX邮件通知中心<域用户名@域名.com>" >
        <network enableSsl="false" host="mail.域名.com" port="25" defaultCredentials="false" />
      </smtp>
    </mailSettings>
  </system.net>
  
</configuration>


 

 2、发送邮件类(MailSender)

public class MailCenter
    {
        #region 发送邮件
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="subject">主题</param>
        /// <param name="emailBody">正文</param>
        /// <param name="mailTo">邮件地址列表,以分号隔开</param>
        public void SendMail(string subject, string emailBody, string mailTo)
        {
            try
            {
                Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

                System.Net.Configuration.MailSettingsSectionGroup settings = System.Net.Configuration.NetSectionGroup.GetSectionGroup(config).MailSettings;
                System.Net.Configuration.SmtpSection smtpSection = System.Net.Configuration.NetSectionGroup.GetSectionGroup(config).MailSettings.Smtp;
                System.Net.Mail.SmtpClient sc = new System.Net.Mail.SmtpClient(settings.Smtp.Network.Host, settings.Smtp.Network.Port);

                string[] address = mailTo.Split(new char[] { ';' });
                System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage();
                foreach (string item in address)
                {
                    mm.To.Add(item);
                }
                mm.From = new System.Net.Mail.MailAddress(smtpSection.From);
                mm.BodyEncoding = System.Text.Encoding.UTF8;
                mm.SubjectEncoding = System.Text.Encoding.UTF8;
                mm.IsBodyHtml = true;
                mm.Body = emailBody;
                mm.Subject = subject;

                sc.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                sc.Send(mm);
            }
            catch (Exception ex)
            {
                WriteTextLog("发送邮件失败", ex.InnerException.Message.ToString(), DateTime.Now);
            }
            finally
            {
            }
        }
        #endregion

        #region 写入日志到文本文件
        /// <summary>  
        /// 写入日志到文本文件  
        /// </summary>  
        /// <param name="action">动作</param>  
        /// <param name="strMessage">日志内容</param>  
        /// <param name="time">时间</param>  
        public static void WriteTextLog(string action, string strMessage, DateTime time)
        {
            string IsWriteServiceLog = ConfigurationManager.AppSettings["IsWriteServiceLog"];
            if (IsWriteServiceLog != "1")
                return;

            string path = AppDomain.CurrentDomain.BaseDirectory + @"\Log\";
            if (!Directory.Exists(path))
                Directory.CreateDirectory(path);
            string fileFullPath = path + time.ToString("yyyy-MM-dd") + ".System.txt";
            StringBuilder str = new StringBuilder();
            str.Append("Time:    " + time.ToString() + "\r\n");
            str.Append("Action:  " + action + "\r\n");
            str.Append("Message: " + strMessage + "\r\n");
            str.Append("-----------------------------------------------------------\r\n\r\n");
            StreamWriter sw;
            if (!File.Exists(fileFullPath))
            {
                sw = File.CreateText(fileFullPath);
            }
            else
            {
                sw = File.AppendText(fileFullPath);
            }
            sw.WriteLine(str.ToString());
            sw.Close();
        }
        #endregion

    }

 3、测试代码

      #region 发送测试邮件
        /// <summary>
        /// 发送测试邮件
        /// </summary>
        public void SendTestEmail()
        {
            string debugEmail = "";
            if (ConfigurationManager.AppSettings.AllKeys.Contains("DebugEmail"))
            {
                debugEmail = ConfigurationManager.AppSettings["DebugEmail"].ToString();
            }

            if (string.IsNullOrEmpty(debugEmail))
            {
                //如果配置文件中没有配置该节点
                WriteTextLog("发送测试邮件失败!", "请检查配置项中[DebugEmail]是否配置", DateTime.Now);
                return;
            }

            MailCenter mc = new MailCenter();
            mc.SendMail("XXXX邮件通知中心发送的测试邮件" + DateTime.Now.ToString("yyyyMMddHHmmss"), "XXXX邮件通知中心发送的测试邮件:无正文", debugEmail);
        }

        #endregion