Beispiel #1
0
        /// <summary>
        /// Encodes mailbox name.
        /// </summary>
        /// <param name="mailbox">Mailbox name.</param>
        /// <param name="encoding">Mailbox name encoding mechanism.</param>
        /// <returns>Renturns encoded mailbox name.</returns>
        /// <exception cref="ArgumentNullException">Is raised when <b>mailbox</b> is null reference.</exception>
        public static string EncodeMailbox(string mailbox, IMAP_Mailbox_Encoding encoding)
        {
            if (mailbox == null)
            {
                throw new ArgumentNullException("mailbox");
            }

            /* RFC 5738 3.
             *  string        =/ utf8-quoted
             *  utf8-quoted   = "*" DQUOTE *UQUOTED-CHAR DQUOTE
             *  UQUOTED-CHAR  = QUOTED-CHAR / UTF8-2 / UTF8-3 / UTF8-4
             */

            if (encoding == IMAP_Mailbox_Encoding.ImapUtf7)
            {
                return("\"" + IMAP_Utils.Encode_IMAP_UTF7_String(mailbox) + "\"");
            }
            else if (encoding == IMAP_Mailbox_Encoding.ImapUtf8)
            {
                return("*\"" + mailbox + "\"");
            }
            else
            {
                return("\"" + mailbox + "\"");
            }
        }