Tom-Net

导航

用jmail发送电子邮件的方法

  1、下载jmail组件,

   2、

  3、定义发送信息的实体类如下

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Serialization;

namespace TianXia.MailSender
{
    /// <summary>
    /// 邮件内容的结构定义
    /// </summary>
    [Serializable]
    public class Message : ISerializable
    {
        private string _mail;
        private string _name;
        private string _subject;
        private string _body;
        public Message()
        {
        }
       
        /// <summary>
        /// 反序列化的实现
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        public Message(SerializationInfo info, StreamingContext context)
        {
            _mail = info.GetString("mail");
            _name = info.GetString("name");
            _subject = info.GetString("subject"); ;
            _body = info.GetString("body"); ;
        }

        /// <summary>
        /// 邮件内容的构造函数
        /// </summary>
        /// <param name="mail">邮件地址</param>
        /// <param name="name">接收人</param>
        /// <param name="subject">邮件主题</param>
        /// <param name="body">邮件正文</param>
        public Message(string mail, string name, string subject, string body)
        {
            _mail = mail;
            _name = name;
            _subject = subject;
            _body = body;
        }

        /// <summary>
        /// 序列化的实现
        /// </summary>
        /// <param name="info"></param>
        /// <param name="context"></param>
        public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
        {
            info.AddValue("mail", _mail);
            info.AddValue("name", _name);
            info.AddValue("subject", _subject);
            info.AddValue("body", _body);
        }

        /// <summary>
        /// 邮件地址
        /// </summary>
        public string Mail
        {
            set
            {
                _mail = value;
            }
            get
            {
                return _mail;
            }
        }

        /// <summary>
        /// 接收人
        /// </summary>
        public string Name
        {
            set
            {
                _name = value;
            }
            get
            {
                return _name;
            }
        }

        /// <summary>
        /// 邮件主题
        /// </summary>
        public string Subject
        {
            set
            {
                _subject = value;
            }
            get
            {
                return _subject;
            }
        }

        /// <summary>
        /// 邮件正文
        /// </summary>
        public string Body
        {
            set
            {
                _body = value;
            }
            get
            {
                return _body;
            }
        }
    }
}

 

4 Jmail发送的具体操作

 

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

namespace TianXia.MailSender
{
    /// <summary>
    /// 通过jMail实现的SMTP发送程序
    /// </summary>
    public class JMailClient 
    {
        /// <summary>
        /// SMTP发送接口的Send方法
        /// </summary>
        /// <param name="message">邮件内容</param>
        public void Send(Message message)
        {
            jmail.Message mail = new jmail.MessageClass();
            mail.Charset = "gb2312";
            mail.Encoding = "base64";
            mail.From = Smtp.From;
            mail.FromName = Smtp.UserName;
            mail.AddRecipient(message.Mail, message.Name, null);
            mail.Subject = message.Subject;
            if (Smtp.Auth)
            {
                mail.MailServerUserName = Smtp.Account;
                mail.MailServerPassWord = Smtp.Password;
            }
            mail.Subject = message.Subject;
            mail.HTMLBody = message.Body;
            mail.Priority = 3;
            try
            {
                mail.Send(Smtp.Host, false);
            }
            finally
            {
                mail.Close();
            }
        }
    }
}

posted on 2008-09-07 21:20  Tom_Net  阅读(580)  评论(0)    收藏  举报