public SMTPSession() { authentication = false; secureConnection = false; host = ""; userName = ""; password = ""; port = 25; timeout = 30; lastResponse = ""; mimeEncoder = new MimeEncoder(); }
/// <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()); }