powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / преобразовать MIME в нормальный вид
20 сообщений из 20, страница 1 из 1
преобразовать MIME в нормальный вид
    #38702003
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как преобразовать MIME в нормальный вид?
Необходимо чтобы в текстбокс4 отображались:
отправитель,получатель,тема,текст,вложение (вложение закодировано в base64 как я знаю).
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702005
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
код приложил в архиве
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702020
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
к примеру вот что я получаю:



+OK 1521 octets
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mail.ru; s=mail2;
h=Content-Type:Message-ID:Reply-To:Date:Mime-Version:Subject:To:From; bh=47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=;
b=Q50UX36e6rXVciBsakHve3KGmoRoVG0+CDAtfzLLtbAQtKgVg4vbyp/KpPosjXbzPOz0M16uh+Ji/bzVWUcRSLHxzWnN/z0FuzJAMJF1vq/kcpta7dt31zO9Y/9DIJEFmL4dd41TnwOTtNo5c3isFxpi1h2EXI76jXT2WLJJYh4=;
Return-path: <email333333@mail.ru>;
Received: from mail by f412.i.mail.ru with local (envelope-from <email333333@mail.ru>;)
id 1X9B7W-0008QO-48
for email333333@mail.ru; Mon, 21 Jul 2014 14:47:03 +0400
Received: from [37.29.105.114] by e.mail.ru with HTTP;
Mon, 21 Jul 2014 14:47:02 +0400
From: =?UTF-8?B?cG9jaHRhIHBvY2hhdA==?= <email333333@mail.ru>;
To: =?UTF-8?B?ZW1haWwzMzMzMzM=?= <email333333@mail.ru>;
Subject: =?UTF-8?B?VGVzdA==?=
Mime-Version: 1.0
X-Mailer: Mail.Ru Mailer 1.0
X-Originating-IP: [37.29.105.114]
Date: Mon, 21 Jul 2014 14:47:02 +0400
Reply-To: =?UTF-8?B?cG9jaHRhIHBvY2hhdA==?= <email333333@mail.ru>;
X-Priority: 3 (Normal)
Message-ID: <1405939622.394903480@f412.i.mail.ru>;
Content-Type: multipart/alternative;
boundary="--ALT--LymWqlnA1405939622"
X-Mras: Ok
X-Spam: undefined


----ALT--LymWqlnA1405939622
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64

IFRlc3Q=
----ALT--LymWqlnA1405939622
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: base64

CjxIVE1MPjxCT0RZPlRlc3Q8L0JPRFk+PC9IVE1MPgo=
----ALT--LymWqlnA1405939622--
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702140
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,

... у вас РОР3, но если есть возможность обращаться к серверу по IMAP, то там можно вызывать различные части сообщения различными командами, например, FETCH (BODY[HEADER]) выдаст вам отдельно заголовки, FETCH(BODY[TEXT]) - выдаст отдельно тело сообщения и т.д. ... Но это если вы не хотите парсить сообщение полностью ...
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702178
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,

или вот
OpenPop.NET
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702179
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
carrotik,
надо получателя,отправителя,дату и вложения.
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702181
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001carrotik,
надо получателя,отправителя,дату и вложения.

... если вас библиотека не устраивает (я сам ее не смотрел), то придется писать парсинг самому .. я писал почтового клиента для ASP.NET - все не так быстро и весело, как казалось бы ...
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702183
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,

я же вам ответил ранее? 16325649
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702184
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79majhool001,

я же вам ответил ранее? 16325649

...человек все же надеется, что есть она, "волшебная" библиотека .. :)
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702186
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

да,я теперь ищу парсер.
почту получилось принять и вывести на форму.
декодеры я нашел
http://foxtools.ru/Base64
http://dogmamix.com/MimeHeadersDecoder/

под vb ищу что-то подобное или лучше самому писать?
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702187
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я писал сам, через тест Криспина не прогонял, но за пару лет ни на одном письме не споткнулся... Скажу честно, экзотику и все возможные случаи не предусматривал...
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702190
carrotik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001Arm79,

да,я теперь ищу парсер.
почту получилось принять и вывести на форму.
декодеры я нашел
http://foxtools.ru/Base64
http://dogmamix.com/MimeHeadersDecoder/

под vb ищу что-то подобное или лучше самому писать?

... в vb.net есть Convert.FromBase64String() без всяких доп. декодеров ...
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38702191
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот какой-то код откопал. Не уверен, что последняя версия, но должна быть рабочей
MIME-парсер
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
    public static class Parser
	{		
		public static string FromMixedEncoding(string message)
		{
			// =?koi8-r?B?Rlc6IPrBzcXOwSDczMXL1NLJ3sXTy8nIIMzBzdA=?=    =?koi8-r?B?+sHNxc7BINzMxcvU0snexdPLycggzMHN0A==?=   fdsfds

			return Regex.Replace (
				message,
				@"(?<entry>=\?(?<charset>[\-\w]+)\?(?<encoding>[bq])\?(?<data>.+?)\?=)",
				match => {
					try {
						string encoding = match.Groups ["encoding"].Value;
						string charset = match.Groups ["charset"].Value;
						string data = match.Groups ["data"].Value;

						return Encoding
							.GetEncoding (charset)
							.GetString (
								encoding.Equals("b", StringComparison.InvariantCultureIgnoreCase) 
						            ? FromBase64Encoding(data) 
						            : FromQuotedPrintableEncoding (data));
					}
					catch {
						return "ERROR_OF_PARSING";
					}
				},
				RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
		}

        public static byte[] FromQuotedPrintableEncoding(string text)
        {
			//=20
			//
			//=20
			//
			//From: =E4=C9=D3=D0=C5=D4=DE=C5=D2=D3=CB=C9=CA =D0=D5=CE=CB=D4 =
			//=F5=D0=D2=C1=D7=CC=C5=CE=C9=D1 =C4=C5=CC=C1=CD=C9=20
			//Sent: Tuesday, May 19, 2009 3:18 PM
			//To: =F7=D3=C5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C9 =D7 =
			//=ED=CF=D3=CB=D7=C5; =F7=D3=C5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C9 =D7 =
			//=ED=CF=D3=CB=D7=C5 2; =F7=D3=C5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C9 =
			//=ED=CF=D3=CB=CF=D7=D3=CB=CF=CA =CF=C2=CC=C1=D3=D4=C9
			//Subject: FW: =FA=C1=CD=C5=CE=C1 =DC=CC=C5=CB=D4=D2=C9=DE=C5=D3=CB=C9=C8 =
			//=CC=C1=CD=D0
			//
			//=20
			//
			//=20
			//
			//=20

			// removing hidden characters	
            text = text.Replace("=\r\n", "");

            using (var stream = new MemoryStream(text.Length))
            {
                int currentPos = 0;
                while (true)
                {
                    if (currentPos >= text.Length)
                        break;

                    var currentChar = text[currentPos];
                    switch (currentChar)
                    {
                        case '=':
                            stream.WriteByte(Convert.ToByte(text.Substring(currentPos + 1, 2), 16));
                            currentPos += 3;
                            break;
                        default:
                            stream.WriteByte(Convert.ToByte(currentChar));
                            currentPos += 1;
                            break;
                    }
                }

                return stream.ToArray();
            }
        }

		public static string FromQuotedPrintableEncoding(string text, string charset)
		{
			//=20
			//
			//=20
			//
			//From: =E4=C9=D3=D0=C5=D4=DE=C5=D2=D3=CB=C9=CA =D0=D5=CE=CB=D4 =
			//=F5=D0=D2=C1=D7=CC=C5=CE=C9=D1 =C4=C5=CC=C1=CD=C9=20
			//Sent: Tuesday, May 19, 2009 3:18 PM
			//To: =F7=D3=C5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C9 =D7 =
			//=ED=CF=D3=CB=D7=C5; =F7=D3=C5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C9 =D7 =
			//=ED=CF=D3=CB=D7=C5 2; =F7=D3=C5 =D0=CF=CC=D8=DA=CF=D7=C1=D4=C5=CC=C9 =
			//=ED=CF=D3=CB=CF=D7=D3=CB=CF=CA =CF=C2=CC=C1=D3=D4=C9
			//Subject: FW: =FA=C1=CD=C5=CE=C1 =DC=CC=C5=CB=D4=D2=C9=DE=C5=D3=CB=C9=C8 =
			//=CC=C1=CD=D0
			//
			//=20
			//
			//=20
			//
			//=20

			return Regex.Replace(
				text.Replace("=\r\n", ""), 			// removing hidden characters				
				@"=(?<hex>\w{2})", 					// taking hex-codes from the text
				match => Encoding					// replacing hex-codes their char values in needed charset
							.GetEncoding(charset)
							.GetString(new byte[] {
								Convert.ToByte(match.Groups["hex"].Value, 16)	// converting hex to byte
							}), 
				RegexOptions.Compiled | RegexOptions.CultureInvariant | RegexOptions.Multiline | RegexOptions.IgnoreCase);
		}

        public static byte[] FromBase64Encoding(string text)
        {
            return Convert.FromBase64String(text);
        }

        public static string GetTextWithoutQuotes(string text)
        {
            return text.Trim(new[] {'"'});
        }

        public static byte[] From8BitEncoding(int codepage, string text)
        {
            return Encoding.GetEncoding(codepage).GetBytes(text);
        }

		public static byte[] From8BitEncoding(string charset, string text)
        {
            return Encoding.GetEncoding(charset).GetBytes(text);
        }
    }

...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38703116
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

http://www.freevbcode.com/ShowCode.asp?ID=1085
нашел класс на vb6
есть ли метод позволяющий задействовать его в net?
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38703130
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001Arm79,

http://www.freevbcode.com/ShowCode.asp?ID=1085
нашел класс на vb6
есть ли метод позволяющий задействовать его в net?

Разумеется :-)

Convert.ToBase64String
Convert.FromBase64String
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38703137
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

нет,base64 я уже разобрался как преобразовать в файл.
не могу понять с mime что делать?
нужные части я вывел на текстбокс из письма.
а дальше как?
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38703144
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79,

можно впринципе загнать содержимое textbox-а где содержится письмо в MIME
в *eml файл, а потом найти какой-нибудь просмотрщик.
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38703159
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,

Как все у вас сложно... Для общего развития почитайте (начиная с заголовка "Обработка писем")
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38703576
majhool001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Arm79, прочитал,не совсем понял как работать с библиотекой так и не смог получить текст.

Нашел ссылку на EML Reader
http://tiny.cc/parser_eml

Это класс для C# ?
как с ним правильно работать?
...
Рейтинг: 0 / 0
преобразовать MIME в нормальный вид
    #38704007
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
majhool001,

Нет, eml - это формат сообщений для ms outlook
Вам в самом начале уже рассказали про OpenPop. Я так и не увидел, что вы его попытались применить.
Или вот еще: https://github.com/bertjohnson/OpaqueMail
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / преобразовать MIME в нормальный вид
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]