// // BodyPartMessage.cs // // Author: Jeffrey Stedfast // // Copyright (c) 2013-2020 .NET Foundation and Contributors // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. // using System; using System.Text; namespace MailKit { /// /// A message/rfc822 body part. /// /// /// Represents a message/rfc822 body part. /// public class BodyPartMessage : BodyPartBasic { /// /// Initializes a new instance of the class. /// /// /// Creates a new . /// public BodyPartMessage () { } /// /// Gets the envelope of the message, if available. /// /// /// Gets the envelope of the message, if available. /// /// The envelope. public Envelope Envelope { get; set; } /// /// Gets the body structure of the message. /// /// /// Gets the body structure of the message. /// /// The body structure. public BodyPart Body { get; set; } /// /// Gets the length of the message, in lines. /// /// /// Gets the length of the message, in lines. /// /// The number of lines. public uint Lines { get; set; } /// /// Dispatches to the specific visit method for this MIME body part. /// /// /// This default implementation for nodes /// calls . Override this /// method to call into a more specific method on a derived visitor class /// of the class. However, it should still /// support unknown visitors by calling /// . /// /// The visitor. /// /// is null. /// public override void Accept (BodyPartVisitor visitor) { if (visitor == null) throw new ArgumentNullException (nameof (visitor)); visitor.VisitBodyPartMessage (this); } /// /// Encodes the into the . /// /// /// Encodes the into the . /// /// The string builder. protected override void Encode (StringBuilder builder) { base.Encode (builder); builder.Append (' '); Encode (builder, Envelope); builder.Append (' '); Encode (builder, Body); builder.Append (' '); Encode (builder, Lines); } } }