zoukankan      html  css  js  c++  java
  • C# 发送邮件

    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;
            }


        }

     
    }

  • 相关阅读:
    Oracle的rownum原理和使用
    ehcache 使用笔记
    @PostConstruct 注解
    Dubbo java.io.IOException: Can not lock the registry cache file
    java 学习 todoList
    因为本地没有配置 localhost 导致的 eclipse 的奇葩问题
    cheatsheet——mac 上的一款可以显示软件所有快捷键的小工具
    对象作为 map 的 key 时,需要重写 equals 方法和 hashCode 方法
    eclipse一直报An internal error occurred during: "Building workspace". GC overhead limit exceeded
    如何修改SVN客户端中保存的密码
  • 原文地址:https://www.cnblogs.com/swneng/p/1309988.html
Copyright © 2011-2022 走看看