C# 邮件类

来源:互联网 发布:手机淘宝备份在哪里 编辑:程序博客网 时间:2024/06/01 09:04

#region  C#邮件发送类
    /// <summary>
    /// C#邮件发送类
    ///
    /// 支持批量(发送、抄送、密送)
    /// 支持多语言、带多个附件
    /// 支持smtp发送邮件服务器验证
    /// </summary>
    public class Mail_Manager
    {
        public Mail_Manager()
        { }

        /**/
        /// <summary>
        /// 邮件发送结果。如果发送过程出现错误,该值为捕获到的异常提示;否则,该值为“OK”。
        /// </summary>
        public string SendMailResult
        {
            get
            {
                return this.m_SendMailResult;
            }
            set
            {
                this.m_SendMailResult = value;
            }
        }
        private string m_SendMailResult;


        //邮件发送时,额外的功能属性设置

        #region 邮件发送时,额外的功能属性设置

        /**/
        /// <summary>
        /// 抄送地址,多个以逗号隔开
        /// </summary>
        public string Cc
        {
            set
            {
                this.m_Cc = value;
            }
        }
        private string m_Cc;

        /**/
        /// <summary>
        /// 密送地址,多个以逗号隔开
        /// </summary>
        public string Bcc
        {
            set
            {
                this.m_Bcc = value;
            }
        }
        private string m_Bcc;

        /**/
        /// <summary>
        /// 邮件格式。可以赋值为“1”或“2”,“1”表示Html格式,“2”表示Text格式。
        /// </summary>
        public int BodyFormat
        {
            set
            {
                this.m_BodyFormat = value;
            }
        }
        private int m_BodyFormat = 1;

        /**/
        /// <summary>
        /// 邮件格式。可以赋值为“1”、“2”或“3”。
        ///“1”表示不紧急邮件,“2”表示普通邮件, “3”表示紧急邮件
        /// </summary>
        public int MailPriority
        {
            set
            {
                this.m_MailPriority = value;
            }
        }
        private int m_MailPriority = 2;

        /**/
        /// <summary>
        /// 附件地址列表,用该属性Add方法加入多个附件,附件地址必须是绝对路径
        /// </summary>
        public ArrayList AttachFiles
        {
            get
            {
                return this.m_AttachFiles;
            }
            set
            {
                this.m_AttachFiles = value;
            }
        }
        ArrayList m_AttachFiles = new ArrayList();

        #endregion


        /**/
        /// <summary>
        /// 发送邮件方法,方法中几个参数是发邮件时所必须的
        /// </summary>
        /// <param name="p_From">发件人</param>
        /// <param name="p_To">邮件人,多个收件人逗号隔开</param>
        /// <param name="p_Subject">邮件标题</param>
        /// <param name="p_Body">正文</param>
        /// <param name="p_SmtpServer">发送邮件服务器</param>
        /// <param name="p_SmtpUsername">发件服务器登录名</param>
        /// <param name="p_SmtpPassword">发件服务器登录密码</param>
        /// <returns></returns>
        public bool SendMail(string p_From, string p_To, string p_Subject, string p_Body, string p_SmtpServer, string p_SmtpUsername, string p_SmtpPassword)
        {
            try
            {
                System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();

                mail.From = p_From;
                mail.To = p_To;
                mail.Subject = p_Subject;
                mail.Body = p_Body;
                SmtpMail.SmtpServer = p_SmtpServer;
                //邮件服务器验证,需要输入您在邮件发送服务器上注册的邮箱用户名和密码
                if (p_SmtpUsername != "")
                {
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1");
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", p_SmtpUsername);
                    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", p_SmtpPassword);
                }

                //以上是发邮件时所必需的,下面是额外的一些功能设置

                if (this.m_Cc != "")
                {
                    mail.Cc = this.m_Cc;
                }
                if (this.m_Bcc != "")
                {
                    mail.Bcc = this.m_Bcc;
                }
                switch (this.m_BodyFormat)
                {
                    case 1:
                        mail.BodyFormat = MailFormat.Html;
                        break;
                    case 2:
                        mail.BodyFormat = MailFormat.Text;
                        break;
                    default:
                        break;
                }
                switch (this.m_MailPriority)
                {
                    case 1:
                        mail.Priority = System.Web.Mail.MailPriority.Low;
                        break;
                    case 2:
                        mail.Priority = System.Web.Mail.MailPriority.Normal;
                        break;
                    case 3:
                        mail.Priority = System.Web.Mail.MailPriority.High;
                        break;
                    default:
                        break;
                }
                if (this.m_AttachFiles.Count > 0)
                {
                    foreach (string file in m_AttachFiles)
                    {
                        if (file.Trim() != "")
                        {
                            mail.Attachments.Add(new MailAttachment(file.Trim()));
                        }
                    }
                }

                SmtpMail.Send(mail);
                this.m_SendMailResult = "OK";
                return true;
            }
            catch (Exception ex)
            {
                this.m_SendMailResult = ex.ToString();
                return false;
            }
        }
    }

    #endregion

 

 

以上存为类文件 注意命名空间问题

 

 

调用方法

 

Mail_Manager MyMail = new Mail_Manager();
            MyMail.SendMail(EmailUserName, EmailAddress, EmailTitle, EmailContent, SMTPStr, EmailUserName, EmailUserPwd);

 

以上的类也是摘抄网络上的加上自己改了改

 

呵呵

原创粉丝点击