internal bool TryGetTnefBinaryCharset(out Charset charset)
        {
            bool result;

            using (ThreadAccessGuard.EnterPublic(this.accessToken))
            {
                PureTnefMessage pureTnefMessage = this.message as PureTnefMessage;
                if (pureTnefMessage == null)
                {
                    MimeTnefMessage mimeTnefMessage = this.message as MimeTnefMessage;
                    if (mimeTnefMessage != null && mimeTnefMessage.HasTnef)
                    {
                        pureTnefMessage = mimeTnefMessage.PureTnefMessage;
                    }
                }
                if (pureTnefMessage != null)
                {
                    charset = pureTnefMessage.BinaryCharset;
                    result  = true;
                }
                else
                {
                    charset = null;
                    result  = false;
                }
            }
            return(result);
        }
        public static EmailMessage Create(MimeDocument mimeDocument)
        {
            if (mimeDocument == null)
            {
                throw new ArgumentNullException("document");
            }
            if (mimeDocument.RootPart == null)
            {
                throw new ArgumentException(EmailMessageStrings.MimeDocumentRootPartMustNotBeNull);
            }
            MimeTnefMessage mimeTnefMessage = new MimeTnefMessage(mimeDocument);

            return(new EmailMessage(mimeTnefMessage));
        }
        public static EmailMessage Create(BodyFormat bodyFormat, bool createAlternative, string charsetName)
        {
            if (bodyFormat != BodyFormat.Text && bodyFormat != BodyFormat.Html)
            {
                throw new ArgumentException(EmailMessageStrings.CannotCreateSpecifiedBodyFormat(bodyFormat.ToString()));
            }
            if (bodyFormat == BodyFormat.Text && createAlternative)
            {
                throw new ArgumentException(EmailMessageStrings.CannotCreateAlternativeBody);
            }
            Charset.GetCharset(charsetName);
            MimeTnefMessage mimeTnefMessage = new MimeTnefMessage(bodyFormat, createAlternative, charsetName);

            return(new EmailMessage(mimeTnefMessage));
        }
        public static EmailMessage Create(Stream source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }
            if (!source.CanRead)
            {
                throw new ArgumentException("Stream must support Read", "source");
            }
            MimeDocument mimeDocument = new MimeDocument();

            mimeDocument.Load(source, CachingMode.Copy);
            MimeTnefMessage mimeTnefMessage = new MimeTnefMessage(mimeDocument);

            return(new EmailMessage(mimeTnefMessage));
        }