最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
对“[原创]EMAIL发送系统(C#+基于SMTP认证)”的改写
时间:2022-07-02 11:05:51 编辑:袖梨 来源:一聚教程网
在为公司写通知服务时,从网上找到了以上地址,非常感谢原作者创造性的劳动。改写的目的是为了适应作为服务运行的要求:
1、适应多线程的要求,发送邮件服务可在后台运行,将与SMTP服务器的连接视为独占资源。
2、适应稳定性的要求,不再以简单地抛出异常来处理错误,在出现异常后等待一定时间间隔后重试,重试一段时间间隔后若还时发不出去,则认为是SMTP出错,返回发送邮件不成功的标识。
3、精简属性、方法,与邮件相关的信息不再作为属性,而是作为send的参数传入;只公布了一个无重载的send方法。以此类为基类,另写通知服务要求的接口方法。
以下是改写后的代码:
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Threading;
namespace Deep.SendEmail
{
#region AspNetPager Server Control
///
/// 邮件可以通过 Microsoft Windows 2000 中内置的 SMTP 邮件服务或任意 SMTP 服务器来传送
///
public class SmtpMail
{
private const string ENTER=" ";
///
/// 设定语言代码,默认设定为GB2312,如不需要可设置为""
///
private string m_charset="GB2312";
///
/// 服务器交互记录
///
private StringBuilder m_logs = new StringBuilder();
private string m_ErrCode;
///
/// SMTP错误代码哈希表
///
private Hashtable m_ErrCodeHT = new Hashtable();
///
/// SMTP正确代码哈希表
///
1、适应多线程的要求,发送邮件服务可在后台运行,将与SMTP服务器的连接视为独占资源。
2、适应稳定性的要求,不再以简单地抛出异常来处理错误,在出现异常后等待一定时间间隔后重试,重试一段时间间隔后若还时发不出去,则认为是SMTP出错,返回发送邮件不成功的标识。
3、精简属性、方法,与邮件相关的信息不再作为属性,而是作为send的参数传入;只公布了一个无重载的send方法。以此类为基类,另写通知服务要求的接口方法。
以下是改写后的代码:
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;
using System.Threading;
namespace Deep.SendEmail
{
#region AspNetPager Server Control
///
/// 邮件可以通过 Microsoft Windows 2000 中内置的 SMTP 邮件服务或任意 SMTP 服务器来传送
///
public class SmtpMail
{
private const string ENTER=" ";
///
/// 设定语言代码,默认设定为GB2312,如不需要可设置为""
///
private string m_charset="GB2312";
///
/// 服务器交互记录
///
private StringBuilder m_logs = new StringBuilder();
private string m_ErrCode;
///
/// SMTP错误代码哈希表
///
private Hashtable m_ErrCodeHT = new Hashtable();
///
/// SMTP正确代码哈希表
///
相关文章
- 修真无限轮回手游轮回世界探索攻略修真无限轮回手游深度轮回机制解析 09-02
- 遮天帝路争锋星空古路探索与通关全流程攻略 09-02
- 末日安全屋血狼势力通关攻略|全阶段任务流程与关键决策指南 09-02
- 末日安全屋晶核快速获取攻略末日安全屋高效刷取晶核的实用做法 09-02
- TPLINK TLWR842+ 无线路由器网速限制设置指南 09-02
- 剑星卢瓦高层全收集如何跑图 09-02