示例#1
0
 public SMTPSession()
 {
     authentication   = false;
     secureConnection = false;
     host             = "";
     userName         = "";
     password         = "";
     port             = 25;
     timeout          = 30;
     lastResponse     = "";
     mimeEncoder      = new MimeEncoder();
 }
示例#2
0
        /// <summary>
        /// Encodes a string in "Mime Word"
        /// </summary>
        /// <param name="Src">The string to encode</param>
        /// <param name="Encoding">The string charset Encoding</param>
        /// <param name="TransfertEncoding">The transfert encoding</param>
        /// <param name="Maxlength">Maximum number of char beetween 2 CRLF</param>
        ///
        /// <returns>A MimeWord encoded string</returns>
        public static string Encode(string Src, System.Text.Encoding Encoding, EncodingIdentifier TransfertEncoding, int Maxlength)
        {
            StringBuilder st = new StringBuilder(Src.Length);

            switch (TransfertEncoding)
            {
            case EncodingIdentifier.QuotedPrintable:
            {
                string suffix = "?=";
                string prefix = "=?" + Encoding.BodyName + "?q?";
                int    len    = prefix.Length + suffix.Length;

                st.Append(prefix);
                for (int i = 0; i < Src.Length; i++)
                {
                    string tmp = QPEncoder.Encode(Src[i], Encoding);
                    if (len + tmp.Length >= Maxlength)
                    {
                        st.AppendFormat("{0}\r\n", suffix);
                        len = prefix.Length + suffix.Length;
                        st.Append(prefix);
                    }
                    st.Append(tmp);
                    len += tmp.Length;
                }
                st.Append("?=");
            }
            break;

            case EncodingIdentifier.Base64:

                st.AppendFormat("=?{0}?b?{1}?=",
                                Encoding.BodyName,
                                MimeEncoder.StringBase64(Src, Encoding, 78));

                break;

            default:
                throw (new ArgumentOutOfRangeException("TransfertEncoding", TransfertEncoding, "Invalid transfert identifier"));
            }

            return(st.ToString());
        }