发送邮件的类(使用jmail)

//使用本类的时候,请到网上下载一个Jmail.dll,并引入工程中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Lib
{
    public class MailObj
    {
        #region 属性

        /// <summary>
        /// 发送者[必填] (如:"abc@yeah.net")
        /// </summary>
        public string MailFrom;//发送者 
        /// <summary>
        /// 发送者用户名[必填] (如:"abc")
        /// </summary>
        public string MailFrom_UserName;//发送者用户名
        /// <summary>
        /// 发送目的地址[必填] (如:"860280456@qq.com")
        /// </summary>
        public string MailTo;//发送目的地址 
        /// <summary>
        /// 接收者的名字 (如:"MR/MRS **")
        /// </summary>
        public string MailTo_Name;
        /// <summary>
        /// 回信地址(默认指定为发送者,如:"abc@yeah.net")
        /// </summary>
        public string ReplyTo;
        /// <summary>
        /// 密码[必填]
        /// </summary>
        public string MailFrom_PWD;
        /// <summary>
        /// SMTP服务器地址[必填] (如:"smtp.yeah.net")
        /// </summary>
        public string SMTPServerAddr;
        /// <summary>
        /// 正文 (如:"你好,这是通过smtp发送出来的邮件!")
        /// </summary>
        public string Body;
        /// <summary>
        /// 主题 (如:" From xhworks SMTP ..";)
        /// </summary>
        public string Subject;

        #endregion

        //*****************************************JMail详细配置说明***************************************************//
        /*
        这个小程序用到了许多jmail的参数,总结如下:

        (1)Body(信件正文) : 字符串如:JMail.Body = "这里可以是用户填写的表单内容,可以取自From。"  

        (2)Charset(字符集,缺省为"US-ASCII") : 字符串如:JMail.Charset = "US-ASCII"  

        (3)ContentTransferEncoding : 字符串 指定内容传送时的编码方式,缺省是"Quoted-Printable"如:JMail.ContentTransferEncoding = "base64"  

        (4)ContentType(信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。 如:JMail.ContentType = "text/html"  

        (5)Encoding : 字符串 设置附件编码方式(缺省是"base64)。 可以选择使用的是"base64", "uuencode" or "quoted-printable" 如:JMail.Encoding = "base64"  

        (6)Log(Jmail创建的日志,前提loging属性设置为true,见下面) : 字符串 如:使用Response.Write( JMail.Log )语句列出日志信息。  

        (7)Logging(是否使用日志) : 布尔型 如:JMail.Logging = true  

        (8)Recipients : 字符串 只读属性,返回所有收件人 如:Response.Write( "" + JMail.Recipients + "" );  

        (9)ReplyTo(指定别的回信地址) : 字符串 如:JMail.ReplyTo = "anyother@mailhost.com"  

        (10)Sender( 发件人的邮件地址) : 字符串 如:JMail.Sender = "sender@mailhost.com"  

        (11)SenderName(发件人的姓名) : 字符串如:JMail.SenderName = "一克"  

        (12)ServerAddress(邮件服务器的地址) : 字符串 你可以指定多个服务器,用分号点开。可以指定端口号。 如果serverAddress保持空白,JMail会尝试远程邮件服务器,然后直接发送到服务器上去。 如:JMail.ServerAddress = "mail.263.net.cn"  

        (13)Subject(设定邮件的标题,可以取自From。):字符串 如:JMail.Subject = "客户反馈表单"  

        (14)添加文件附件到邮件 如:JMail.AddAttachment( "c:\anyfile.zip" )  

        (15)AddCustomAttachment( FileName, Data ) 添加自定义附件. 如:JMail.AddCustomAttachment( "anyfile.txt", "Contents of file" );  

        (16)AddHeader( Header, Value ) 添加用户定义的信件标头。 如:JMail.AddHeader( "Originating-IP","192.168.10.10" );  

        (17)AddRecipient(收件人):字符串 如:JMail.AddRecipient( "info@dimac.net" );  

        (18)AddRecipientBCC( Email ),密件收件人: 如:JMail.AddRecipientBCC( "anyone@mailhost.com" );  

        (19)AddRecipientCC( Email ) ,抄送收件人:如:JMail.AddRecipientCC( "anyone@mailhost.com" )  

        (20)AddURLAttachment( URL, 文档名) 下载并添加一个来自url的附件. 第二个参数"文档名", 用来指定信件收到后的文件名。如:JMail.AddURLAttachment( "http://www.chinabs.net/jmail.zip", "jmail" )  

        (21)AppendBodyFromFile( 文件名) ,将文件作为信件正文: 如:JMail.AppendBodyFromFile( "c:\anyfile.txt" )  

        (22)AppendText( Text )追加信件的正文内容,比如增加问候语或者其它信息。 如:JMail.AppendText( "欢迎访问本站!" )  

        (23)Close() ,强制JMail关闭缓冲的与邮件服务器的连接: 如:JMail.Close()  

        (24)Execute() ,执行邮件的发送 如:JMail.Execute()  
    
       */
    }

    public class MailSend
    { 
        /// <summary>
        /// 发送邮件给指定的用户(测试OK)
        /// </summary>
        /// <param name="argMailFrom"></param>
        /// <param name="argMailTo"></param>
        /// <param name="argBody"></param>
        /// <param name="argSubject"></param>
        /// <returns></returns>
        public static bool SendMail(MailObj argMailObj)
        {
            jmail.Message Jmail = new jmail.Message();

            String Subject = argMailObj.Subject;
            String body = argMailObj.Body;
            String FromEmail = argMailObj.MailFrom;
            String ToEmail = argMailObj.MailTo;
            //Silent属性:如果设置为true,JMail不会抛出例外错误. JMail.Send() 会根据操作结果返回true或false
            Jmail.Silent = true;
            //Jmail创建的日志,前提loging属性设置为true
            Jmail.Logging = true;
            //字符集,缺省为"US-ASCII"
            Jmail.Charset = "GB2312";
            //信件的contentype. 缺省是"text/plain") : 字符串如果你以HTML格式发送邮件, 改为"text/html"即可。
            Jmail.ContentType = "text/html";
            //添加收件人
            Jmail.AddRecipient(ToEmail, argMailObj.MailTo_Name, "");
            Jmail.From = FromEmail;
            //发件人邮件用户名
            Jmail.MailServerUserName = argMailObj.MailFrom_UserName;//用户名
            //发件人邮件密码
            Jmail.MailServerPassWord = argMailObj.MailFrom_PWD;//密码
            //设置邮件标题
            Jmail.Subject = Subject;
            //邮件添加附件,(多附件的话,可以再加一条Jmail.AddAttachment( "c://test.jpg",true,null);)就可
            //以搞定了。[注]:加了附件,讲把上面的Jmail.ContentType="text/html";删掉。否则会在邮件里出现乱码。
            //    Jmail.AddAttachment("c://test.jpg", true, null);
            //邮件内容
            Jmail.Body = body + " [发送时间:" + DateTime.Now.ToString() + "]";

            //Jmail.AddAttachment("E:\\a.rar");
            //Jmail.AddCustomAttachment("E:\\a.rar", "");

            if (string.IsNullOrEmpty(argMailObj.ReplyTo))//回信地址默认指定为发送者
            {
                Jmail.ReplyTo = argMailObj.MailFrom;
            }
            else
            {
                Jmail.ReplyTo = argMailObj.ReplyTo;
            }
            //Jmail发送的方法
            bool isSuccess = Jmail.Send(argMailObj.SMTPServerAddr, false);

            //if (isSuccess)
            //{
            //    Response.Write("邮件成功发送至[" + ToEmail + "]!");
            //}
            //else
            //{
            //    Response.Write("邮件发送失败!!!");
            //}
            Jmail.Close();

            return isSuccess;
        }

        /// <summary>
        /// 暂无
        /// </summary>
        /// <returns></returns>
        public MailObj ReceiveMail()
        {
            return null;
        }
    }
}




--------------------------------------------------------------

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值