Beispiel #1
0
        /// <summary>
        /// 文字コードを取得する
        /// </summary>
        /// <param name="mailHeader">メールヘッダ</param>
        /// <returns>文字コード</returns>
        public static string ParseEncoding(string mailHeader)
        {
            Pop3 pop = new Pop3();

            // メールヘッダから文字コード文字列を抜き出す
            string codeName = pop.GetHeaderField("Content-Type:", mailHeader);

            codeName = codeName.Replace("\"", "");
            string[] arrayName = codeName.Split('=');
            codeName = arrayName[1];

            return(codeName);
        }
Beispiel #2
0
        /// <summary>
        /// 重要度取得
        /// </summary>
        /// <param name="header">ヘッダ</param>
        /// <returns>重要度(urgent/normal/non-urgent)</returns>
        public static string Parse(string header)
        {
            string _priority = "normal";
            string priority  = "";

            var pop = new Pop3();

            // ヘッダにX-Priorityがあるとき
            if (header.Contains("X-Priority:"))
            {
                priority = pop.GetHeaderField("X-Priority:", header);

                if (priority == "1" || priority == "2")
                {
                    _priority = Urgent;
                }
                else if (priority == "3")
                {
                    _priority = Normal;
                }
                else if (priority == "4" || priority == "5")
                {
                    _priority = NonUrgent;
                }
            }
            else if (header.Contains("X-MsMail-Priotiry:"))
            {
                priority = pop.GetHeaderField("X-MsMail-Priotiry:", header);

                if (priority.ToLower() == "High")
                {
                    _priority = Urgent;
                }
                else if (priority.ToLower() == "Normal")
                {
                    _priority = Normal;
                }
                else if (priority.ToLower() == "low")
                {
                    _priority = NonUrgent;
                }
            }
            else if (header.Contains("Importance:"))
            {
                priority = pop.GetHeaderField("Importance:", header);

                if (priority.ToLower() == "high")
                {
                    _priority = Urgent;
                }
                else if (priority.ToLower() == "normal")
                {
                    _priority = Normal;
                }
                else if (priority.ToLower() == "low")
                {
                    _priority = NonUrgent;
                }
            }
            else if (header.Contains("Priority:"))
            {
                priority = pop.GetHeaderField("Priority:", header);
                // 重要度の文字列の長さが0以上のときは取得した重要度を入れる
                if (priority.Length > 0)
                {
                    _priority = priority;
                }
            }
            return(_priority);
        }