asp.net 发送邮件(Interop.jmail.dll)组件

using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.IO;
using System.Net.Mail;
using System.Threading;

namespace FuZhongBase
{
    ///


    ///SendMail 的摘要说明
    ///
    public class Mail
    {
        public Mail()
        {
            //
            //TODO: 在此处添加构造函数逻辑
            //
        }

        #region 电子邮件发送-----------------------------------------------------------------------------


        ///
        /// 群发邮件
        ///
        /// 收件人地址(可以是多个地址用"|"/","/";"隔开)
        /// 邮件标题
        /// 邮件内容
        /// 是否是HTML邮件
        /// 发件人地址
        /// 发件人名称
        /// 发件人邮箱密码
        /// 发件人SMTP
        ///
        public static string SendMail(string strTo, string strTitle, string strBody, bool strIsHTML, string strFrom, string strLoginName, string strPassword, string strSMTP, string strFree)
        {
            string[] str = strTo.Split(new char[] { ',', ';', '|' });
            string strCount = "";
            MailMessage msg = new MailMessage();
            msg.From = new MailAddress(strFrom, strLoginName, System.Text.Encoding.UTF8);
            /* 上面3个参数分别是发件人地址,发件人姓名,编码*/
            msg.Subject = strTitle;                           //邮件标题
            msg.SubjectEncoding = System.Text.Encoding.UTF8;  //邮件标题编码
            msg.Body = strBody;                               //邮件内容
            msg.BodyEncoding = System.Text.Encoding.UTF8;     //邮件内容编码
            msg.IsBodyHtml = strIsHTML;                       //是否是HTML邮件
            msg.Priority = MailPriority.High;               //邮件优先级
            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential(strFrom, strPassword);
            client.Host = strSMTP;
            //client.Port = "";
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            object userState = msg;
            for (int i = 0; i < str.Length - 1; i++)
            {
                msg.To.Add(str[i].ToString());
            }
            try
            {
                System.Threading.Thread.Sleep(200);
                client.Send(msg);
                strCount = "发送成功";
            }
            catch (SmtpException ex)
            {
                strCount = "发送失败";
            }
            return strCount;
        }

        ///  
        /// 邮件发送类(请先对Subject主题、 BodyText正文、toEmail收件箱赋值、EAddress邮件地址,Esmtp邮箱的smtp,Epass邮箱密码)  
        ///  
        /// */
        public void SendMails(string ESubject, string EtoEmail, string EBodyText, string userName, string EAddress, string Esmtp, string Epass)
        {
            //把群发的邮件存入数组中
            string toEmail = EtoEmail.Trim();
            toEmail = toEmail.Replace(",", ",");
            toEmail = toEmail.Replace(" ", ",");
            toEmail = toEmail.Replace("  ", ",");
            toEmail = toEmail.Replace("|", ",");
            toEmail = toEmail.Replace("\\", ",");
            toEmail = toEmail.Replace("、", ",");
            toEmail = toEmail.Replace("/", ",");
            string[] MtoEmail = toEmail.Split(',');
            try
            {
                for (int i = 0; i < MtoEmail.Length - 1; i++)
                {

                    if (MtoEmail[i].Trim() != "")
                    {
                        Mails(ESubject, MtoEmail[i], EBodyText, userName, EAddress, Esmtp, Epass);//发送邮件                        
                    }

                }
            }
            catch
            {

            }

        }
        public static void Mails(string ESubject, string toEmail, string EBodyText, string userName, string EAddress, string Esmtp, string Epass)
        {
            try
            {
                MailMessage m_message = new MailMessage();
                m_message.Subject = ESubject;
                m_message.SubjectEncoding = System.Text.Encoding.UTF8;
                m_message.Body = EBodyText;
                m_message.BodyEncoding = System.Text.Encoding.UTF8;
                m_message.IsBodyHtml = true;
                m_message.From = new MailAddress(EAddress);
                m_message.To.Add(new MailAddress(toEmail));
                SmtpClient smtp = new SmtpClient(Esmtp);
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = new System.Net.NetworkCredential(userName, Epass);
                smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
                smtp.Timeout = 10000;
                smtp.Send(m_message);
            }
            catch (Exception ee)
            {
                throw ee;
            }
        }
        #endregion

        #region 电子邮件发送,以网页形式-----------------------------------------------------------------

        ///  
        /// 邮件发送类(请先对Subject主题、 url网址、toEmail收件箱赋值、EAddress邮件地址,Esmtp邮箱的smtp,Epass邮箱密码)  
        ///  
        /// */
        public static bool SendMailsWeb(string ESubject, string EtoEmail, string url, string userName, string EAddress, string Esmtp, string Epass)
        {
            string toEmail = EtoEmail.Trim();
            toEmail = toEmail.Replace(",", ",");
            toEmail = toEmail.Replace(" ", ",");
            toEmail = toEmail.Replace("  ", ",");
            toEmail = toEmail.Replace("|", ",");
            toEmail = toEmail.Replace("\\", ",");
            toEmail = toEmail.Replace("、", ",");
            toEmail = toEmail.Replace("/", ",");
            string[] MtoEmail = toEmail.Split(',');
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            System.IO.StreamReader sr = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding("utf-8"));
            string mailContent = sr.ReadToEnd();
            try
            {
                for (int i = 0; i < MtoEmail.Length; i++)
                {
                    if (MtoEmail[i].Trim() != "")
                    {
                        Mails(ESubject, MtoEmail[i], mailContent, userName, EAddress, Esmtp, Epass);
                        System.Threading.Thread.Sleep(500);

                    }
                }
                return true;
            }
            catch
            {
                return false;
            }
        }
        #endregion


        /*
    说明:sendEmail方法用来执行发送邮件功能,该方法无返回值。
    参数:sender表示发件人,senderuser表示发件人姓名,euser表示发件人的邮箱登录名,epwd表示发件人的邮箱密码,
     receiver表示收件人,subject表示邮件主题,body表示邮件内容,eserver表示发送邮件服务器。
    */
        public void sendEmail(string sender, string senderuser, string euser, string epwd, string receiver, string subject, string body, string eserver)
        {
            jmail.MessageClass jmMessage = new jmail.MessageClass();
            jmMessage.Charset = "GB2312";
            jmMessage.ISOEncodeHeaders = false;
            jmMessage.From = sender;
            jmMessage.FromName = senderuser;
            jmMessage.Subject = subject;
            jmMessage.MailServerUserName = euser;
            jmMessage.MailServerPassWord = epwd;
            jmMessage.AddRecipient(receiver, "", "");
            //if (ddlAccessories.Items.Count > 0)
            //{
            //    for (int i = 0; i < ddlAccessories.Items.Count; i++)
            //    {
            //        string path = ddlAccessories.Items[i].Value;
            //        jmMessage.AddAttachment(@path, true, "");
            //    }
            //}
            jmMessage.Body = body;
            if (jmMessage.Send(eserver, false))
            {
                //return true;
            }
            else
                //return false;
                jmMessage = null;
        }
    }
}
 

转载于:https://my.oschina.net/sunrui9521/blog/13495

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值