日期:2012-01-29  浏览次数:20499 次

这是我学C#后写的第一个比较拿得出手的东西,肯定有很多错误之处,还望各位高手指正。


写它的原因就是.net自带的SmtpMail不支持SMTP认证(说句题外话,我真很奇怪, 从ASP到ASP.NET,M$的邮件组件老是慢半拍,ASP中的CDONTS难得能有正常使用的, 到了.NET时代,SMTP服务器基本都得验证才能用,.NET的SmtpMail又不支持验证, 真是~~~),我费了好几天功夫才弄明白怎样把原来的Jmail怎么弄到.NET下用, 可用起来还是比较麻烦,正好买了本《C#网络程序设计》,作为实践项目,也是为了 让自己以后轻松一点,我写了这个东西。


程序架构可能有些乱,都是原来写ASP时留下的毛病,如果那位能帮我弄得整齐一点,小弟感激不尽。


欢迎大家提出修改建议,或者自行修改,最好能把修改稿Mail给我一份,让我也学习学习 ^_^。

完整的源代码和编译好的DLL可以从下面的URL下载。
http://huolx.t2008.com/class.asp?classlevel=3&classname=.net技术&l2classname=ESmtpmail&articleid=-486856519

下面开始贴源代码。


using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Collections;

namespace Huolx.Pubclass
{
    /// <summary>
    /// <para>支持SMTP服务器认证的邮件发送类</para>
    /// <para></para>
    /// <para>ver 1.0B</para>
    /// <para>属性和方法设置类似于Jmail。</para>
    /// <para></para>
    /// <para>Huolx(flycloud@btamail.net.cn)版权所有,转载请保留。</para>
    /// </summary>
    /// <remarks>
    /// <para>这是我学C#后写的第一个比较拿得出手的东西,肯定有很多错误之处,还望各位高手指正。</para>
    /// <para></para>
    /// <para>写它的原因就是.net自带的SmtpMail不支持SMTP认证(说句题外话,我真很奇怪,
    /// 从ASP到ASP.NET,M$的邮件组件老是慢半拍,ASP中的CDONTS难得能有正常使用的,
    /// 到了.NET时代,SMTP服务器基本都得验证才能用,.NET的SmtpMail又不支持验证,
    /// 真是~~~),我费了好几天功夫才弄明白怎样把原来的Jmail怎么弄到.NET下用,
    /// 可用起来还是比较麻烦,正好买了本《C#网络程序设计》,作为实践项目,也是为了
    /// 让自己以后轻松一点,我写了这个东西。</para>
    /// <para></para>
    /// <para>程序架构可能有些乱,都是原来写ASP时留下的毛病,如果那位能帮我弄得整齐一点,小弟感激不尽。</para>
    /// <para></para>
    /// <para>欢迎大家提出修改建议,或者自行修改,最好能把修改稿Mail给我一份,让我也学习学习 ^_^。</para>
    /// </remarks>
    public class ESmtpMail
    {

        /// <summary>
        /// 设定语言代码,默认设定为GB2312,如不需要可设置为""
        /// </summary>
        public string Charset="GB2312";

        /// <summary>
        /// 发件人地址
        /// </summary>
        public string From="";

        /// <summary>
        /// 发件人姓名
        /// </summary>
        public string FromName="";

        /// <summary>
        /// 回复邮件地址
        /// </summary>
        public string ReplyTo="";

        /// <summary>
        /// 邮件服务器域名
        /// </summary>    
        private string mailserver="&q