自己动手,一步一步实现邮件群发.NET源码(2)

自己动手,一步一步实现邮件群发.NET源码(2)
--参数设置
作者:长江支流

关键字:.NET、邮件、群发

  

 

     上文中,用到一个类MailSetting.cs,用于存储定认发送邮件的参数。

  

     由于是自己用,直接用WebMIS.Net快速开发平台的一个配置库支持文件,以便将来扩充时,再加上数据库存取邮件。下面是配置参数,见其它参数。

 

 

    

     当然大家自己定义一个窗口,窗口上加几个控件,对应该类的变量就可以了,或者自己在App.config中增加设置,否则有人会因为一上可以替换的dll说欺骗源码:)

 

 

using System;
using System.Collections.Generic;
using System.Text;

namespace GoldMailer
{
    /// <summary>
    /// 该类主要定义邮件收发中的一些参数。
    /// 
    /// 作 者:长江支流(周方勇)
    /// Email:flygoldfish@163.com  QQ:150439795
    /// 网 址:http://blog.csdn.net/flygoldfish
    /// ★★★★★您可以免费使用此程序,但是请您完整保留此说明,以维护知识产权★★★★★
    /// 
    /// </summary>
    public class MailSetting
    {
        //这里借用原来一个工程项目的配置dll,使用者可以自己增加一个窗口定义对应的变量

        /*
         配置信息
          <OtherParameters>
             <ParameterItem>
               <ParameterName>SMTP服务器</ParameterName>
               <ParameterValue>smtp.163.com</ParameterValue>
             </ParameterItem>
             <ParameterItem>
               <ParameterName>收发端口号</ParameterName>
               <ParameterValue>25</ParameterValue>
             </ParameterItem>
             <ParameterItem>
               <ParameterName>发件人邮箱</ParameterName>
               <ParameterValue>GoldPrinter@163.com</ParameterValue>
             </ParameterItem>
             <ParameterItem>
               <ParameterName>发件人密码</ParameterName>
               <ParameterValue />
             </ParameterItem>
             <ParameterItem>
               <ParameterName>发件人显示</ParameterName>
               <ParameterValue>金质打印通(长江支流)</ParameterValue>
             </ParameterItem>
             <ParameterItem>
               <ParameterName>是否使用SSL</ParameterName>
               <ParameterValue>true</ParameterValue>
             </ParameterItem>
           </OtherParameters>
         */
        private string _SmtpServer = "";
        private int _SmtpPort = 25;
        private bool _SmtpSSL = false;
        private string _SenderMail = "";
        private string _SenderPassword = "";
        private string _SenderDisplay = "";

        private string _ReplyToMail = "";
        private string _ReplyToDisplay = "";


        #region 属性...

        /// <summary>
        /// 获取或设置SMTP服务器
        /// </summary>
        public string SmtpServer
        {
            get { return _SmtpServer; }
            set { _SmtpServer = value; }
        }

        /// <summary>
        /// 获取或设置收发端口号
        /// </summary>
        public int SmtpPort
        {
            get { return _SmtpPort; }
            set { _SmtpPort = value; }
        }

        /// <summary>
        /// 获取或设置是否使用SSL
        /// </summary>
        public bool SmtpSSL
        {
            get { return _SmtpSSL; }
            set { _SmtpSSL = value; }
        }

        /// <summary>
        /// 获取或设置发件人邮箱
        /// </summary>
        public string SenderMail
        {
            get { return _SenderMail; }
            set { _SenderMail = value; }
        }

        /// <summary>
        /// 获取或设置发件人密码
        /// </summary>
        public string SenderPassword
        {
            get { return _SenderPassword; }
            set { _SenderPassword = value; }
        }

        /// <summary>
        /// 获取或设置发件人显示信息
        /// </summary>
        public string SenderDisplay
        {
            get { return _SenderDisplay; }
            set { _SenderDisplay = value; }
        }


        /// <summary>
        /// 获取或设置收信人回复指向邮件。
        /// </summary>
        public string ReplyToMail
        {
            get { return _ReplyToMail; }
            set { _ReplyToMail = value; }
        }

        /// <summary>
        /// 获取或设置收信人回复指向邮件显示名。
        /// </summary>
        public string ReplyToDisplay
        {
            get { return _ReplyToDisplay; }
            set { _ReplyToDisplay = value; }
        }


        #endregion 属性...

        /// <summary>
        /// 创建对象新的实例。
        /// </summary>
        public MailSetting()
        {
            LoadConfig();
        }

        /// <param name="senderPassword">指定密码优先于配置。</param>
        public MailSetting(string senderPassword):this()
        {
            _SenderPassword = senderPassword;
        }

        /// <summary>
        /// 加载配置信息
        /// </summary>
        public void LoadConfig()
        {
            WebMIS.FrameWork.Template.Config.SystemConfig config = new WebMIS.FrameWork.Template.Config.SystemConfig();
            config = config.Open("Config\\Config.xml");

            _SmtpServer = config.GetParameterValue("SMTP服务器");

            int port = 0;

            int.TryParse(config.GetParameterValue("收发端口号"),out port);

            if (port > 0)
            {
                _SmtpPort = port;
            }

            _SenderMail = config.GetParameterValue("发件人邮箱");
            _SenderPassword = config.GetParameterValue("发件人密码");
            _SenderDisplay = config.GetParameterValue("发件人显示");
            if (config.GetParameterValue("是否使用SSL").ToLower().Trim() == "true")
            {
                _SmtpSSL = true;
            }
            else
            {
                _SmtpSSL = false;
            }


            //回复邮件
            _ReplyToMail = config.GetParameterValue("回复邮件");
            _ReplyToDisplay = config.GetParameterValue("回复显示");
        }

    }
}


到此,邮件群发功能基本完成 ,先提供一个下载处: http://download.csdn.net/detail/flygoldfish/4484682

 

接下来的文章,就完成群发单点发送、邮件发送成功失败的反馈、改用线程发送以便可以路途取消邮件发送。
 

相关源码下载信息请访问:
http://blog.csdn.net/flygoldfish

声明:本文版权为周方勇所有,欢迎转载,请保留完整的内容及出处。
flygoldfish@163.com


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值