发送邮件的例子

1、配置文件

<?xml version="1.0"?>
<configuration>
  <appSettings>
    <!--1:是调试状态 0或者其他-->
    <add key="DebugStatus" value="1"/>
    <!--发送测试邮件接收地址 调试用-->
    <add key="DebugEmail" value="[email protected]"/>
    <!--是否写日志 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
时间: 2024-11-04 17:02:39

发送邮件的例子的相关文章

javamail 发送邮件简单例子

前几天,做预警项目需要添加一个发送邮件的功能,由于本人刚刚接触java,还不甚懂.网上找了一个例子,略加修改,即完成………… 例子地址:http://www.blogjava.net/wangfun/archive/2009/04/15/265748.html 下面开始一步步来讲(大牛勿喷~~): step1. 下载jar包:javax.mail:mail:1.4.7,当然,如果你是用的gradle那就直接在build.gradle中添加compile 'javax.mail:mail:1.4.

一个发送邮件的例子------建造模式的应用

假设有一个Java建造的电子杂志系统,定期地向用户的电子邮件信箱发送电子杂志.用户可以通过网页订阅电子杂志,也可以通过网页停止订阅.当用户开始订阅时,系统发送一个电子邮件表示欢迎,当用户结束订阅时,系统发送一个电子邮件表示欢送.本例子就是这个系统负责发送“欢迎”和“欢送”邮件的模块. 在本例中,产品类就是发送给客户的“欢送”和“欢迎”的邮件.由于本例的特殊性,两个产品可以抽象出一个共同的接口,即邮件信息抽象类.下面是该抽象类的源代码 import java.util.Date; import j

用Perl发送邮件小例子

据传,Perl发送邮件有很多方案,但我只会用Mail::Sender这种方式,也就只能简单谈谈这种方式. 在参考众多网页后,程序书写如下: #!/usr/bin/perl -w use Mail::Sender; my $sender=Mail::Sender->new({ ctype=>'text/plain;charset=utf-8', encoding=>'utf-8', smtp =>'smtp.163.com', from =>'[email protected]

使用phpmaill发送邮件的例子

首先,要下载php_mail软件包 核心代码: index.php <?php include "mail.php"; if (!empty($_POST['to']) && !empty($_POST['fromname']) && !empty($_POST['title']) && !empty($_POST['content'])) { send_mail($_POST['to'],$_POST['fromname'],$_

JavaMail发送邮件小例子

package Demo1; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; public class

E. 使用phpmaill发送邮件的例子

首先,要下载php_mail软件包 核心代码: index.php <?php include "mail.php"; if (!empty($_POST['to']) && !empty($_POST['fromname']) && !empty($_POST['title']) && !empty($_POST['content'])) { send_mail($_POST['to'],$_POST['fromname'],$_

初探Django线程发送邮件

最近一直在纠结一个邮件发送的问题. 在本地Linux下搭建程序,不填写EMAIL设置就可以成功发送邮件,在远端的云服务器下的Linux环境就发送不了.在windows下搭建的程序也不能发送注册邮件,很是奇怪. 初步判断是代码没有问题,本地Linux服务器由于以前也鼓捣过其它东西,不一定与云端服务器保持一致.于是只能从官方文档的发送邮件说明入手,慢慢找原因. from django.core.mail import send_mail send_mail(u'邮件标题', u'邮件内容', '[e

使用c#给outlook添加任务、发送邮件

原文:使用c#给outlook添加任务.发送邮件 c#在使用outlook提供的一些API时,需要将outlook相关的com引用到项目中. 具体方法就是用vs打开工程后,在工程上添加引用,在com选项卡上,选择Microsoft Outlook 12.0 Object Library,如果安装的不是outlook2007,则对应com的版本不一样.注意下面描述的方法是在命令行模式或者winform模式下的,不是web模式下的. 在web模式下使用的方法稍有不同,不在此处讨论. 给outlook

杂记2:VS2013创建Windows服务实现自动发送邮件

这篇随笔里,我将介绍如何用VS2013开发Windows服务项目,实现的功能是定时发送电子邮件. 开发环境:VS2013,SQL Server2008,采用C#语言开发 步骤一:创建Windows服务项目 首先,有人提问VS2013找不到创建Windows服务项目的选项,答案是在“Windows 桌面”目录下: 步骤二:重命名服务,添加Timer组件 重命名默认创建的Service1服务,比如MyMailService:然后在设计界面添加Timer组件. 这里要注意,VS工具箱默认提供的是Sys