自己动手,一步一步实现邮件群发.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