/// <summary> /// Create a new e-mail content type by parsing the given string. /// </summary> /// <param name="ContentTypeString"></param> public MailContentType(AbstractEMail EMailHeader, String ContentTypeString) { this._EMailHeader = EMailHeader; this._Text = ContentTypeString; var Splitted = ContentTypeString. Split(new String[] { ";" }, StringSplitOptions.RemoveEmptyEntries). Select(v => v.Trim()). ToArray(); if (Splitted.Length == 0) { this._ContentType = MailContentTypes.text_plain; } else if (!Enum.TryParse <MailContentTypes>(Splitted[0].Replace("/", "_").Replace("+", "__"), out this._ContentType)) { this._ContentType = MailContentTypes.text_plain; } else { foreach (var SubInformation in Splitted.Skip(1)) { if (SubInformation.ToLower().StartsWith("charset=")) { _CharSet = SubInformation.Substring("charset=".Length).Trim().ToLower(); if (_CharSet.StartsWith(@"""")) { _CharSet = _CharSet.Remove(0, 1); } if (_CharSet.EndsWith(@"""")) { _CharSet = _CharSet.Substring(0, _CharSet.Length - 1); } continue; } if (SubInformation.ToLower().StartsWith("boundary=")) { _MIMEBoundary = SubInformation.Substring("boundary=".Length).Trim(); if (_MIMEBoundary.StartsWith(@"""")) { _MIMEBoundary = _MIMEBoundary.Remove(0, 1); } if (_MIMEBoundary.EndsWith(@"""")) { _MIMEBoundary = _MIMEBoundary.Substring(0, MIMEBoundary.Length - 1); } continue; } } } // Update text-version within the e-mail header if (_EMailHeader != null) { _EMailHeader.SetEMailHeader("Content-Type", this.ToString()); } }
/// <summary> /// Create a new e-mail content type. /// </summary> /// <param name="ContentType">The content type.</param> public MailContentType(AbstractEMail EMailHeader, MailContentTypes ContentType = MailContentTypes.unknown) { this._EMailHeader = EMailHeader; this._ContentType = ContentType; }