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