Beispiel #1
0
        private void ProcessSingleBody()
        {
            string[] lines = _body.Split('\n');

            _partBuilder.Length = 0;
            if (_content_type.ToLower().IndexOf("/html") < 0)
            {
                ProcessSinglePlainBody(lines);
            }
            else
            {
                ProcessSingleHtmlBody(lines);
            }

            if (_bodyBuilder.Length > 0 || _htmlBodyBuilder.Length > 0)
            {
                string cte = _content_transfer_encoding;
                if (Utils.StartsWith(cte, "quoted-printable", true))
                {
                    string body = _bodyBuilder.ToString();
                    _bodyBuilder.Length = 0;
                    _bodyBuilder.Append(MIMEParser.DecodeQuotedPrintable(_charset, body));
                    body = _htmlBodyBuilder.ToString();
                    _htmlBodyBuilder.Length = 0;
                    _htmlBodyBuilder.Append(MIMEParser.DecodeQuotedPrintable(_charset, body));
                }
                else if (Utils.StartsWith(cte, "base64", true))
                {
                    string body = _bodyBuilder.ToString();
                    _bodyBuilder.Length = 0;
                    _bodyBuilder.Append(MIMEParser.DecodeBase64(_charset, body));
                    body = _htmlBodyBuilder.ToString();
                    _htmlBodyBuilder.Length = 0;
                    _htmlBodyBuilder.Append(MIMEParser.DecodeBase64(_charset, body));
                }
                else
                {
                    string body = _bodyBuilder.ToString();
                    _bodyBuilder.Length = 0;
                    _bodyBuilder.Append(MIMEParser.TranslateRawStringInCharset(_charset, body));
                    body = _htmlBodyBuilder.ToString();
                    _htmlBodyBuilder.Length = 0;
                    _htmlBodyBuilder.Append(MIMEParser.TranslateRawStringInCharset(_charset, body));
                    for (int i = 0; i < _parts.Count; ++i)
                    {
                        MessagePart attachment = (MessagePart)_parts[i];
                        attachment.Name = MIMEParser.TranslateRawStringInCharset(_charset, attachment.Name);
                    }
                }
            }
        }
Beispiel #2
0
 private static string DecodeLine(string line, MessagePartEncoding MIME_encoding, string bodyCharset)
 {
     if (MIME_encoding == MessagePartEncoding.QuotedPrintable)
     {
         line = MIMEParser.DecodeQuotedPrintable(bodyCharset, line);
     }
     else if (MIME_encoding == MessagePartEncoding.Base64)
     {
         line = MIMEParser.DecodeBase64(bodyCharset, line);
     }
     else
     {
         line = MIMEParser.TranslateRawStringInCharset(bodyCharset, line);
     }
     return(line);
 }