swneng

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

 

using System;
using System.Net.Mail;
using System.Text;
using System.IO;
using System.Security.Cryptography;
using System.Xml;
using System.Net;
using System.Data;

namespace BusinessFacade
{

 /// <summary>
 /// 传真类
 /// </summary>
 public class Fax
 {
        /// <summary>
        /// 单批发送最多号码数,超过这个数量就要分组
        /// </summary>
        const int MAX_FAX_COUNT = 100;


  string m_to;
  string m_subject;
  string m_body;
  MailPriority m_mailPriority;
  string m_attach;
  string m_mailServer;
  string m_mailServerAccount;
  string m_mailServerPassword;

  public Fax()
  {
   m_to = "outfax@myfax.cn";
   m_subject = "";
   m_body = "";
   m_mailPriority = MailPriority.Normal;
   m_attach = "";
   m_mailServer = "myfax.cn";
   m_mailServerAccount = "";
   m_mailServerPassword = "";
  }

  public Fax(string tomail,string server)
  {
   m_to = tomail;
   m_subject = "";
   m_body = "";
   m_mailPriority = MailPriority.Normal;
   m_attach = "";
   m_mailServer = server;
   m_mailServerAccount = "";
   m_mailServerPassword = "";
  }

  #region 属性
  
  /// <summary>
  /// 发送方账号
  /// </summary>
  public string FromAccount
  {
   get { return m_mailServerAccount; }
   set { m_mailServerAccount = value; }
  }

  /// <summary>
  /// 发送方密码
  /// </summary>
  public string FromPassword
  {
   get { return m_mailServerPassword; }
   set { m_mailServerPassword = value; }
  }

  /// <summary>
  /// 接收方传真号码,多个号码用“;”号隔开。
  /// </summary>
  public string To
  {
   get { return m_subject; }
   set { m_subject = value; }
  }

  /// <summary>
  /// 传真内容
  /// </summary>
  public string Content
  {
   get { return m_body; }
   set { m_body = value; }
  }

  /// <summary>
  /// 传真附件路径,多个附件用“,”号隔开。
  /// </summary>
  public string Attach
  {
   get { return m_attach; }
   set { m_attach = value; }
  }

  #endregion

  /// <summary>
  /// 发送传真
  /// </summary>
  public void Send()
  {
   MailMessage MyMail = new MailMessage();
            try
            {
                MyMail.To.Add(new MailAddress(m_to));
                MyMail.From = new MailAddress(m_mailServerAccount + "@" + m_mailServer);
                MyMail.Subject = m_subject;
                MyMail.SubjectEncoding = Encoding.UTF8;
                MyMail.Body = m_body;
                MyMail.BodyEncoding = Encoding.UTF8;
                MyMail.IsBodyHtml = true;
                MyMail.Priority = m_mailPriority;
                MyMail.Headers.Add("Message-ID", DateTime.Now.ToFileTime() + "@17u.net");
               
              

                // 添加附件
                if (m_attach != "")
                {
                    char[] delim = new char[] { ',' };
                    foreach (string sSubstr in m_attach.Split(delim))
                    {
                        Attachment MyAttachment = new Attachment(sSubstr);
                        MyMail.Attachments.Add(MyAttachment);
                    }
                }

                SmtpClient smtp = new SmtpClient();
                smtp.UseDefaultCredentials = true;
                smtp.Credentials = new System.Net.NetworkCredential(m_mailServerAccount, m_mailServerPassword);
                smtp.Host = m_mailServer;

                smtp.Send(MyMail);
            }
            finally
            {
                MyMail.Dispose();
            }
  }


        /// <summary>
        /// 向to数组中的每一号码发送传真
        /// </summary>
        /// <param name="to"></param>
        public void Send(object[] to)
        {
            //分组
            double group = Math.Ceiling((double)(to.Length * 1.0 / MAX_FAX_COUNT));

            for (int g = 0; g < group; g++)
            {
                bool firstChild = true;
                string faxStr = "";
                for (int i = 0; i < ((g + 1) * MAX_FAX_COUNT) && i < to.Length; i++)
                {
                    if (ValidatorHelper.IsNumeric(to[i]))
                    {
                        if (!firstChild)
                            faxStr += ",";
                        else
                            firstChild = false;

                        faxStr += (string)to[i];
                    }
                }

                this.To = faxStr;
                this.Send();
            }
        }

       
  public static void SendEmail(string to,string subject,string msg, string from, string pwd,string server)
  {
   MailMessage MyMail = new MailMessage();
   MyMail.From = new MailAddress(from);
   MyMail.To.Add(new MailAddress(to));
   MyMail.Subject = subject;
            MyMail.SubjectEncoding = Encoding.UTF8;
   MyMail.Body = msg;   
   MyMail.BodyEncoding = Encoding.UTF8;
            MyMail.IsBodyHtml = true;
            MyMail.Headers.Add("Message-ID", DateTime.Now.ToFileTime() + "@17u.net");
           

            SmtpClient smtp = new SmtpClient();
            smtp.UseDefaultCredentials = true;      
            smtp.Credentials = new System.Net.NetworkCredential(from, pwd);           
            smtp.Host = server;

            try
            {
                smtp.Send(MyMail);
            }
            catch (Exception ex)
            {
                throw ex;
             }
        }
        //定义标准时间1970后的秒数
        protected static readonly DateTime unixTPStart =
        TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));

        //获取ip
        public string GetLocalIP()
        {
            string sHostName = System.Net.Dns.GetHostName();
            System.Net.IPHostEntry hostinfo = System.Net.Dns.GetHostByName(sHostName);
            System.Net.IPAddress add = hostinfo.AddressList[0];
            return add.ToString();
        }

        //进行md5加密
        public static string getMD5(string str)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] data = System.Text.Encoding.Default.GetBytes(str);
            byte[] result = md5.ComputeHash(data);
            String ret = "";
            for (int i = 0; i < result.Length; i++)
                ret += result[i].ToString("x").PadLeft(2, '0');
            return ret;
        }
        //生成timestamp
        public static long toUTP(DateTime dt)
        {
            TimeSpan toNow = dt.Subtract(unixTPStart);
            return (long)Math.Round(toNow.TotalSeconds);

        }
        public static System.Data.DataSet GetDataSetByRequest(string param)
        {

 

            WebRequest webrequest = WebRequest.Create(param);
            webrequest.Method = "POST";//请求的类型
            webrequest.Timeout = 300000; //超时的毫秒数
            webrequest.ContentType = "application/x-www-form-urlencoded";
            System.Data.DataSet DS = new DataSet();

            Stream oStreamOut = null;
            try
            {
                oStreamOut = webrequest.GetRequestStream();
            }
            catch
            {
                webrequest.Abort();
                DS.Dispose();

                //System.Web.HttpContext.Current.Response.End();
            }
            finally
            {

            }


            oStreamOut.Close();
            WebResponse myWebResponse = null;
            try
            {
                myWebResponse = webrequest.GetResponse();
                Stream streamResponse = myWebResponse.GetResponseStream();
                Encoding encode = Encoding.GetEncoding("GB2312");
                StreamReader streamRead = new StreamReader(streamResponse, encode);
                System.Xml.XmlTextReader Reader = new System.Xml.XmlTextReader(streamRead);
                DS.ReadXml(Reader);
                Reader.Close();
                streamResponse.Close();
                streamRead.Close();
                myWebResponse.Close();

               
            }
            catch
            {
                webrequest.Abort();
                DS.Dispose();

                //System.Web.HttpContext.Current.Response.End();
            }
                return DS;
        }


    }

 

 
}

posted on 2008-10-13 14:55  易哲  阅读(231)  评论(0编辑  收藏  举报