Exemplo n.º 1
0
    /// <summary>
    /// ส่งเมล์จาก EmailTemplate โดยระบุค่าตัวแปรได้
    /// </summary>
    /// <param name="TemplateName">ชื่อ Template</param>
    /// <param name="From">เมล์ต้นทาง</param>
    /// <param name="To">เมล์ปลายทาง</param>
    /// <param name="Parameter">ค่าที่ใช้แทนในเมล์ เช่น [Username],nithi.re</param>
    /// <param name="outMessage">ข้อความแจ้งเตือนเมื่อเกิดข้อผิดพลาด</param>
    /// <param name="FromAliasName">ชื่อเมล์ต้นทาง</param>
    /// <param name="Cc">เมล์แนบ</param>
    /// <param name="Bcc">เมล์ไม่เปิดเผย</param>
    /// <param name="Signature">ข้อความท้ายเมล์</param>
    /// <returns>true=ส่งผ่าน , false=ส่งไม่ผ่าน</returns>
    /// <example>
    /// clsMail clsMail=new clsMail();
    /// string outMessage;
    /// clsMail.SendTemplate(
    ///     "UserRegisterConfirm",
    ///     "*****@*****.**",
    ///     "*****@*****.**",
    ///     new string[,] { { "[Username]", "ยูสเซอร์เนม" }, { "[UIDEncrypt]", "ยูไอดีเอ็นคริบ" } },
    ///     out outMessage);
    /// </example>
    public bool SendTemplate(string TemplateName, string From, string To, string[,] Parameter, out string outMessage, string FromAliasName = "", string Cc = "", string Bcc = "", string Signature = "")
    {
        #region Variable
        bool rtnValue = false;
        outMessage = "";

        StringBuilder strSQL = new StringBuilder();
        DataTable dt = new DataTable();
        clsSQL clsSQL = new clsSQL();
        clsLanguage clsLanguage = new clsLanguage();
        clsData clsData=new clsData();
        clsDefault clsDefault = new clsDefault();
        #endregion

        #region Found Language
        #region SQL Query
        strSQL.Append("SELECT ");
        strSQL.Append("EmailTemplate.UID,Language.Name LanguageName,EmailTemplate.Subject,EmailTemplate.Message ");
        strSQL.Append("FROM ");
        strSQL.Append("EmailTemplate ");
        strSQL.Append("INNER JOIN Language ON EmailTemplate.LanguageUID=Language.UID ");
        strSQL.Append("AND Language.Active='1' ");
        //strSQL.Append("AND Language.Name='" + clsLanguage.LanguageCurrent + "' ");
        strSQL.Append("WHERE ");
        strSQL.Append("EmailTemplate.Active='1' ");
        strSQL.Append("AND EmailTemplate.Name='" + TemplateName + "' ");
        strSQL.Append("ORDER BY ");
        strSQL.Append("Language.Sort ASC");
        #endregion

        dt = clsSQL.Bind(strSQL.ToString(), dbType, cs);
        strSQL.Length = 0; strSQL.Capacity = 0;
        #endregion

        if (dt != null && dt.Rows.Count > 0)
        {
            #region Find LanguageRow
            bool languageMatch = false;
            int i;

            for (i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["LanguageName"].ToString() == clsLanguage.LanguageCurrent)
                {
                    languageMatch = true;
                    break;
                }
            }
            if (!languageMatch) i = 0;
            #endregion

            #region Parameter Replace
            string subject = dt.Rows[i]["Subject"].ToString();
            string message = dt.Rows[i]["Message"].ToString();

            subject = clsData.Replacer(subject, Parameter);
            message = clsData.Replacer(message, Parameter);

            if (Send(From, To, subject, message, out outMessage, FromAliasName, Cc, Bcc, Signature))
            {
                SendTemplateLog(dt.Rows[i]["UID"].ToString(), From, To, Cc, Bcc, "Complete");
                rtnValue = true;
            }
            else
            {
                SendTemplateLog(dt.Rows[i]["UID"].ToString(), From, To, Cc, Bcc, clsDefault.Left(outMessage,90));
                rtnValue = false;
            }
            #endregion
        }
        else
        {
            outMessage = "ไม่พบข้อมูล EmailTemplate";
            return false;
        }

        return rtnValue;
    }
Exemplo n.º 2
0
    /// <summary>
    /// ส่งเมล์จาก EmailTemplate โดยระบุค่าตัวแปรได้
    /// </summary>
    /// <param name="TemplateName">ชื่อ Template</param>
    /// <param name="From">เมล์ต้นทาง</param>
    /// <param name="To">เมล์ปลายทาง</param>
    /// <param name="Parameter">ค่าที่ใช้แทนในเมล์ เช่น [Username],nithi.re</param>
    /// <param name="outMessage">ข้อความแจ้งเตือนเมื่อเกิดข้อผิดพลาด</param>
    /// <param name="FromAliasName">ชื่อเมล์ต้นทาง</param>
    /// <param name="Cc">เมล์แนบ</param>
    /// <param name="Bcc">เมล์ไม่เปิดเผย</param>
    /// <param name="Signature">ข้อความท้ายเมล์</param>
    /// <returns>true=ส่งผ่าน , false=ส่งไม่ผ่าน</returns>
    /// <example>
    /// clsMail clsMail=new clsMail();
    /// string outMessage;
    /// clsMail.SendTemplate(
    ///     "UserRegisterConfirm",
    ///     "*****@*****.**",
    ///     "*****@*****.**",
    ///     new string[,] { { "[Username]", "ยูสเซอร์เนม" }, { "[UIDEncrypt]", "ยูไอดีเอ็นคริบ" } },
    ///     out outMessage);
    /// </example>
    public bool SendTemplate(string TemplateName, string From, string To, string[,] Parameter, out string outMessage, string FromAliasName = "", string Cc = "", string Bcc = "", string Signature = "")
    {
        #region Variable
        bool rtnValue = false;
        outMessage = "";

        StringBuilder strSQL      = new StringBuilder();
        DataTable     dt          = new DataTable();
        clsSQL        clsSQL      = new clsSQL();
        clsLanguage   clsLanguage = new clsLanguage();
        clsData       clsData     = new clsData();
        clsDefault    clsDefault  = new clsDefault();
        #endregion

        #region Found Language
        #region SQL Query
        strSQL.Append("SELECT ");
        strSQL.Append("EmailTemplate.UID,Language.Name LanguageName,EmailTemplate.Subject,EmailTemplate.Message ");
        strSQL.Append("FROM ");
        strSQL.Append("EmailTemplate ");
        strSQL.Append("INNER JOIN Language ON EmailTemplate.LanguageUID=Language.UID ");
        strSQL.Append("AND Language.Active='1' ");
        //strSQL.Append("AND Language.Name='" + clsLanguage.LanguageCurrent + "' ");
        strSQL.Append("WHERE ");
        strSQL.Append("EmailTemplate.Active='1' ");
        strSQL.Append("AND EmailTemplate.Name='" + TemplateName + "' ");
        strSQL.Append("ORDER BY ");
        strSQL.Append("Language.Sort ASC");
        #endregion

        dt            = clsSQL.Bind(strSQL.ToString(), dbType, cs);
        strSQL.Length = 0; strSQL.Capacity = 0;
        #endregion

        if (dt != null && dt.Rows.Count > 0)
        {
            #region Find LanguageRow
            bool languageMatch = false;
            int  i;

            for (i = 0; i < dt.Rows.Count; i++)
            {
                if (dt.Rows[i]["LanguageName"].ToString() == clsLanguage.LanguageCurrent)
                {
                    languageMatch = true;
                    break;
                }
            }
            if (!languageMatch)
            {
                i = 0;
            }
            #endregion

            #region Parameter Replace
            string subject = dt.Rows[i]["Subject"].ToString();
            string message = dt.Rows[i]["Message"].ToString();

            subject = clsData.Replacer(subject, Parameter);
            message = clsData.Replacer(message, Parameter);

            if (Send(From, To, subject, message, out outMessage, FromAliasName, Cc, Bcc, Signature))
            {
                SendTemplateLog(dt.Rows[i]["UID"].ToString(), From, To, Cc, Bcc, "Complete");
                rtnValue = true;
            }
            else
            {
                SendTemplateLog(dt.Rows[i]["UID"].ToString(), From, To, Cc, Bcc, clsDefault.Left(outMessage, 90));
                rtnValue = false;
            }
            #endregion
        }
        else
        {
            outMessage = "ไม่พบข้อมูล EmailTemplate";
            return(false);
        }

        return(rtnValue);
    }