|
Java форум JavaTalks форум программистов
|
|
|
|
| Предыдущая тема :: Следующая тема |
| Автор |
Сообщение |
matvey : 33 Новичок Откуда: Novosibirsk
|
Дек 03, 2010 11:31 |
|
|
Хорошо, для примера, я вставлял аттач файла с названием "контент.txt" к форме в Jira. После чего в лог записалось:
| Код: |
2010-12-03 14:20:31,728 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,735 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 3A
2010-12-03 14:20:31,738 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,741 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,744 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 3E
2010-12-03 14:20:31,747 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,750 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,754 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 3D
2010-12-03 14:20:31,757 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,760 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,763 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 42
2010-12-03 14:20:31,766 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,769 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,772 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 35
2010-12-03 14:20:31,775 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,778 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,781 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 3D
2010-12-03 14:20:31,784 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,788 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 04
2010-12-03 14:20:31,791 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 42
2010-12-03 14:20:31,794 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,797 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 00
2010-12-03 14:20:31,800 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 2E
2010-12-03 14:20:31,803 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,806 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 00
2010-12-03 14:20:31,809 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 74
2010-12-03 14:20:31,812 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,815 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 00
2010-12-03 14:20:31,818 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 78
2010-12-03 14:20:31,821 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail]
2010-12-03 14:20:31,824 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 00
2010-12-03 14:20:31,827 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] 74
2010-12-03 14:20:31,830 http-8083-Processor21 INFO [com.metainf.jira.plugin.emailissue.mail.SmartEmail] |
Код был следующим:
| Код: |
String filename = att.getFilename();
char[] chs = filename.toCharArray();
for (char c : chs) {
logger.info("" + this.getString(c >> 8));
logger.info("" + this.getString(c));
logger.info("");
}
|
| Код: |
private String getString(int c) {
String s = Integer.toHexString(c & 0xFF).toUpperCase();
return s.length() > 1 ? s : "0" + s; |
PS: Объясните, пожалуйста еще возникший непонятный момент: каким образом операция "c & 0xFF" уберает лишнюю цифру в старшем байте? |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Дек 03, 2010 14:11 |
|
|
Я не сомневаюсь, что JIRA сумела корректно прочитать это имя файла. Мне нужны те же данные по ПРИШЕДШЕМУ имени. Которое, как Вы говорите, вопросиками.
P.S. & - это побитовая операция над целыми числами. Маска 0xFF оставляет нижние 8 бит. _________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
matvey : 33 Новичок Откуда: Novosibirsk
|
Янв 13, 2011 11:53 |
|
|
| Skipy писал(а): |
Я не сомневаюсь, что JIRA сумела корректно прочитать это имя файла. Мне нужны те же данные по ПРИШЕДШЕМУ имени. Которое, как Вы говорите, вопросиками.
P.S. & - это побитовая операция над целыми числами. Маска 0xFF оставляет нижние 8 бит. |
Я не очень понял, тогда, каким образом я смогу предоставить байты. Отправкой мейла с аттачем занимется плагин, исходник которого я и пытался править. atlassian-mail (который в свою очередь, основан на javax.mail API) и по умолчанию выставляет кодировку UTF-8.
Объясните "по-летски", что ли: КУДА мне запихнуть написанные Вами методы, для того, чтобы получить имя файла? |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Янв 13, 2011 12:18 |
|
|
Имя пришедшего файла Вы можете получить, посмотрев полученное письмо в том варианте, как его пересылает почтовый сервер. Со всеми заголовками. _________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
matvey : 33 Новичок Откуда: Novosibirsk
|
Янв 14, 2011 7:35 |
|
|
| Skipy писал(а): |
| Имя пришедшего файла Вы можете получить, посмотрев полученное письмо в том варианте, как его пересылает почтовый сервер. Со всеми заголовками. |
Я еще раз повторю вопрос: "КУДА мне затолкать написанные Вами методы?"
Предположим, я клиент Jira. Как мы ранее выяснили, Jira "сумела корректно распознать кодировку"... Пусть так. делаю отправку из Джиры с аттачем. На любой мейл. Допустим, себе. Изначально он был в кириллице. Мне приходит в кривой кодировке. Пришедший мне файл, я так понимаю, Вас и интересует?
Вопрос: что мне нужно сделать, чтобы Вы получили то, что просите? |
|
|
|
 |
Skipy : 4801 Я тут живу! Откуда: Москва, Россия
|
Янв 14, 2011 10:28 |
|
|
Написаные мною методы тут не помогут. Мне нужно письмо в техническом виде. Вот пример письма с приложением, посланного мнюй на ящик yandex-а. Привожу всю сессию telnet, после команды telnet pop.yandex.ru 110:
| Код: |
+OK POP Ya! v1.0.0na@32 oFOWn25t0a61
user ********
+OK password, please.
pass ********
+OK 30 67421
list
+OK 30 67421
1 20402
2 1650
3 1650
4 1650
5 1646
6 1650
7 1646
8 1059
9 1652
10 1652
11 1652
12 1652
13 1652
14 1652
15 1652
16 1652
17 1652
18 3454
19 1684
20 1684
21 1684
22 1684
23 1648
24 1683
25 1683
26 1683
27 1095
28 1100
29 1059
30 1059
.
retr 1
+OK 20402 octets.
X-Yandex-FolderName: Vhodyashchie
Received: from mxfront14.mail.yandex.net ([127.0.0.1])
by mxfront14.mail.yandex.net with LMTP id DWCCqt1v
for <e-matyshkin@yandex.ru>; Fri, 14 Jan 2011 10:13:32 +0300
Received: from relay.parallels.com (relay.parallels.com [195.214.232.42])
by mxfront14.mail.yandex.net (nwsmtp/Yandex) with ESMTP id DVaSkpLP;
Fri, 14 Jan 2011 10:13:31 +0300
X-Yandex-Front: mxfront14.mail.yandex.net
X-Yandex-TimeMark: 1294989211
X-Yandex-Spam: 1
Authentication-Results: mxfront14.mail.yandex.net; spf=neutral (mxfront14.mail.yandex.net: 195.214.232.42 is neither permitted nor denied by domain of parallels.com) smtp.mail=ematyushkin@parallels.com
Received: from msk-exch1.sw.swsoft.com ([10.30.1.231] helo=mail.sw.ru)
by relay.parallels.com with esmtps (TLSv1:RC4-MD5:128)
(Exim 4.72)
(envelope-from <ematyushkin@parallels.com>)
id 1Pddql-0005KJ-QD
for e-matyshkin@yandex.ru; Fri, 14 Jan 2011 10:13:31 +0300
Received: from msk-exch1.sw.swsoft.com ([10.30.1.231]) by
msk-exch1.sw.swsoft.com ([10.30.1.231]) with mapi; Fri, 14 Jan 2011 10:13:30
+0300
From: Eugeny Matyushkin <ematyushkin@parallels.com>
To: "e-matyshkin@yandex.ru" <e-matyshkin@yandex.ru>
Date: Fri, 14 Jan 2011 10:13:30 +0300
Subject: =?utf-8?B?0KLQtdGB0YI=?=
Thread-Topic: =?utf-8?B?0KLQtdGB0YI=?=
Thread-Index: AcuzuowSqHWwCEbcQ/qEijMaMJamKQ==
Message-ID: <13080FB377AAC04BBB7135B5F840962303020DC72877@msk-exch1.sw.swsoft.com>
Accept-Language: ru-RU
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
acceptlanguage: ru-RU
Content-Type: multipart/mixed;
boundary="_004_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_"
MIME-Version: 1.0
X-Yandex-Forward: 2e08ea93766804d23871cbf095f16758
--_004_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_
Content-Type: multipart/alternative;
boundary="_000_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_"
--_000_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
0KLQtdGB0YINCg0KLS0NCkV1Z2VuZSBNYXR5dXNoa2luDQpTZW5pb3IgU29mdHdhcmUgRGV2ZWxv
cGVyDQpQYXJhbGxlbHMgQXV0b21hdGlvbg0Kd3d3LnBhcmFsbGVscy5jb208aHR0cDovL3d3dy5w
YXJhbGxlbHMuY29tLz4NCg0KDQo=
--_000_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_
Content-Type: text/html; charset="utf-8"
Content-Transfer-Encoding: base64
PGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIiB4
bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIiB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+DQoNCjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVp
dj1Db250ZW50LVR5cGUgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxtZXRh
--_000_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_--
--_004_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_
Content-Type: text/plain; name="=?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?="
Content-Description: =?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?=
Content-Disposition: attachment;
filename="=?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?="; size=10099;
creation-date="Fri, 14 Jan 2011 10:13:20 GMT";
modification-date="Mon, 29 Nov 2010 15:18:38 GMT"
Content-Transfer-Encoding: base64
z+vg7fs6DQoNCjIuIMDz8u7h7urx6O3jIC0g7/Du4evl7PssIO/w7ujn4u7k6PLl6/zt7vHy/A0K
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT0NCmh0dHA6Ly9hZWZpbW92LmxpdmVqb3VybmFs
--_004_13080FB377AAC04BBB7135B5F840962303020DC72877mskexch1sws_--
.
|
Вот заголовок, отвечающий за вложение:
| Код: |
Content-Type: text/plain; name="=?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?="
Content-Description: =?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?=
Content-Disposition: attachment;
filename="=?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?="; size=10099;
creation-date="Fri, 14 Jan 2011 10:13:20 GMT";
modification-date="Mon, 29 Nov 2010 15:18:38 GMT"
Content-Transfer-Encoding: base64
|
Меня интересует тег Content-Disposition:
| Цитата: |
Content-Disposition: attachment;
filename="=?utf-8?B?0LrQvtC90YLQtdC90YIudHh0?="; size=10099;
creation-date="Fri, 14 Jan 2011 10:13:20 GMT";
modification-date="Mon, 29 Nov 2010 15:18:38 GMT" |
Выделенная часть содержит имя файла в UTF-8, закодированное base64. В данном случае, если раскодировать 0LrQvtC90YLQtdC90YIudHh0 с помощью base64, а потом полученные байты интерпретировать как UTF-8 - получим "контент.txt", название файла.
Если в Вашем случае в этой точке Вы из технических заголовков получите исходное имя - в происходящем виноват тот, кто разбирает эти заголовки. Если имя испорчено уже на этой стадии - виноват тот, кто послал. _________________ С уважением,
Евгений aka Skipy
www.skipy.ru
P.S. Я НЕ решаю задачи ЗА других! |
|
|
|
 |
|
|
Страница 2 из 2 На страницу Пред. 1, 2 |
Список форумов
-> Локализация (l10n & i18n) |
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|