1. 程式人生 > >c# 發動郵件程式碼

c# 發動郵件程式碼

 public class EmailHelper
    {
        public static bool SendMail(object[] o_Config, string[] s_Text)
        {
            try
            {
                //SMTP定義
                var m_SmtpClient = new SmtpClient();
                m_SmtpClient.Host = (string)o_Config[0];
                m_SmtpClient.Credentials = new NetworkCredential((string)o_Config[1], (string)o_Config[2]);
                m_SmtpClient.EnableSsl = (bool)o_Config[3];

                //郵件主體定義
                var m_MailMessage = new MailMessage(s_Text[0], s_Text[1]);
                m_MailMessage.Subject = s_Text[2];
                m_MailMessage.Body = s_Text[3];
                m_MailMessage.IsBodyHtml = true;
                m_MailMessage.Priority = MailPriority.High;

                //if (p_Attachment != null)
                //    m_MailMessage.Attachments = p_Attachment;

                //傳送郵件
                m_SmtpClient.Send(m_MailMessage);

                return true;
            }
            catch
            {
                return false;
            }
        }

        public static bool SendMail(Dictionary<string, object> parm)
        {
            try
            {
                //SMTP定義
                var m_SmtpClient = new SmtpClient();
                m_SmtpClient.Host = parm["host"].ToString();
                m_SmtpClient.Credentials = new NetworkCredential(parm["userID"].ToString(), parm["Pws"].ToString());
                m_SmtpClient.EnableSsl = Convert.ToBoolean(parm["EnableSsl"]);

                //郵件主體定義
                var m_MailMessage = new MailMessage(parm["form"].ToString(), parm["to"].ToString());

                //主題
                m_MailMessage.Subject = parm["Subject"].ToString();
                //
                m_MailMessage.Body = parm["Body"].ToString();
                m_MailMessage.IsBodyHtml = true;

                //if (p_Attachment != null)
                //    m_MailMessage.Attachments = p_Attachment;
                object userState = m_MailMessage;
                //傳送郵件
                m_SmtpClient.SendCompleted += m_SmtpClient_SendCompleted;
                m_SmtpClient.SendAsync(m_MailMessage, userState);
                //m_SmtpClient.Send(m_MailMessage);


                return true;
            }
            catch (Exception ee)
            {
                return false;


            }
        }

        public static void SendMail(string sendUserName, string sendUserPwd, string from,
            string to, string Subject, string body)
        {
            SendMail(sendUserName, sendUserPwd, from, to, Subject, body, "");
        }

        public static void SendMail(string sendUserName, string sendUserPwd, string from,
            string to, string Subject, string body, string dispalyName)
        {

            //SMTP定義
            using (var mSmtpClient = new SmtpClient())
            {
                mSmtpClient.Host = "mail.petrochina";

                mSmtpClient.Credentials = new NetworkCredential(sendUserName, sendUserPwd);
                mSmtpClient.EnableSsl = false;

                // MailAddress maF = new MailAddress(from);
                // MailAddress maT = new MailAddress(to);

                //郵件主體定義
                MailMessage mMailMessage = new MailMessage();

                mMailMessage.From = new MailAddress(from, dispalyName);

                string[] toPerson = to.Split(';');
                if (toPerson.Length > 0)
                {
                    foreach (string item in toPerson)
                    {
                        mMailMessage.To.Add(item);
                    }
                }
                else
                {
                    mMailMessage.To.Add(to);
                }

                //主題
                mMailMessage.Subject = Subject;
                //
                mMailMessage.Body = body;
                mMailMessage.IsBodyHtml = true;

                object userState = mMailMessage;
                //傳送郵件
                mSmtpClient.Send(mMailMessage);

            }
        }

        public static void SendMail_0(string sendUserName, string sendUserPwd, string from,
            string to, string Subject, string body)
        {

            //SMTP定義
            using (var mSmtpClient = new SmtpClient())
            {
                mSmtpClient.Host = "mail.petrochina";

                mSmtpClient.Credentials = new NetworkCredential(sendUserName, sendUserPwd);
                mSmtpClient.EnableSsl = false;

                //郵件主體定義
                MailMessage mMailMessage = new MailMessage(from, to);

                //主題
                mMailMessage.Subject = Subject;
                //
                mMailMessage.Body = body;
                mMailMessage.IsBodyHtml = true;

                object userState = mMailMessage;
                //傳送郵件

                mSmtpClient.Send(mMailMessage);

            }
        }

        private static void m_SmtpClient_SendCompleted(object sender, AsyncCompletedEventArgs e)
        {
            var mail = (MailMessage)e.UserState;
            if (e.Error != null)
            {
                //   UseLog.saveLogFiles(0, mail.To.ToString(), "傳送失敗!", e.Error.ToString());
            }

            else
            {
                //   UseLog.saveLogFiles(1, mail.From.ToString(), "傳送成功!",
                //        "收件人:" + mail.To + Environment.NewLine + "主題:" + mail.Subject + Environment.NewLine + "內容:" +
                //       mail.Body);
            }
        }
    }