static string encode(string str)
		{
			var inBytes = TextEncoding.UTF8.GetBytes(str);

			var encoder = new QuotedPrintableEncoder(inBytes.ToInStream());

			var encoded = encoder.ToArray();
			return TextEncoding.UTF8.GetString(encoded);
		}
Пример #2
0
        public void TestQuotedPrintableEncode()
        {
            const string expected = "This is an ordinary text message in which my name (=ED=E5=EC=F9 =EF=E1=\n =E9=EC=E8=F4=F0)\nis in Hebrew (=FA=E9=F8=E1=F2).\n";
            const string input    = "This is an ordinary text message in which my name (םולש ןב ילטפנ)\nis in Hebrew (תירבע).\n";
            var          encoding = Encoding.GetEncoding("iso-8859-8");
            var          encoder  = new QuotedPrintableEncoder();
            var          output   = new byte[4096];

            var buf    = encoding.GetBytes(input);
            int n      = encoder.Flush(buf, 0, buf.Length, output);
            var actual = Encoding.ASCII.GetString(output, 0, n);

            Assert.AreEqual(expected, actual);
        }
Пример #3
0
        protected string EncodeQuotedPrintable(byte[] inputBytes)
        {
            try
            {
                QuotedPrintableEncoder encoder = new QuotedPrintableEncoder();

                byte[] outputBytes = new byte[encoder.EstimateOutputLength(inputBytes.Length)];

                int length = encoder.Encode(inputBytes, 0, inputBytes.Length, outputBytes);

                return(Encoding.UTF8.GetString(outputBytes.Take(length).ToArray()));
            }
            catch
            {
                return(null);
            }
        }
Пример #4
0
        public void TestQuotedPrintableEncodeSpaceUnixLineBreak()
        {
            const string input    = "This line ends with a space \nbefore a line break.";
            const string expected = "This line ends with a space=20\nbefore a line break.";
            var          encoder  = new QuotedPrintableEncoder();
            var          output   = new byte[1024];
            string       actual;

            byte[] buf;
            int    n;

            Assert.AreEqual(ContentEncoding.QuotedPrintable, encoder.Encoding);

            buf    = Encoding.ASCII.GetBytes(input);
            n      = encoder.Flush(buf, 0, buf.Length, output);
            actual = Encoding.ASCII.GetString(output, 0, n);
            Assert.AreEqual(expected, actual);
        }
        public static string EncodeQuotedPrintableText(string text)
        {
            var encoder    = new QuotedPrintableEncoder();
            var buffer     = Encoding.UTF8.GetBytes(text);
            var multiplier = 3.0d;

            while (true)
            {
                try
                {
                    var length = (int)Math.Floor(buffer.Length * multiplier);
                    var output = new byte[length];
                    var count  = encoder.Encode(buffer, 0, buffer.Length, output);

                    return(Encoding.ASCII.GetString(output, 0, count));
                }
                catch (ArgumentException)
                {
                    multiplier *= 1.44;
                }
            }
        }
Пример #6
0
 static XEMailMessagesHandler()
 {
     encoder   = new ContentEncoder();
     qpEncoder = new QuotedPrintableEncoder();
 }