poczta i pole subject

81
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

witam,

orientuje się ktoś w jaki sposób zakodowano treść pola "subject" w wiadomości email ?

oto fragment źródła wiadomości:

Kopiuj
Sender: "QNAP Systems, Inc." <marketing@multi4.postfix.bmsend.com>
To: "8143" <8143@mymail.pl>
Subject: =?UTF-8?B?UU5BUCB6YXByYXN6YSBkbyBXYXJzemF3eSBuYSBkYXJtb3fEhSBrb25mZXJlbmNqxJk=?=
Date: Tue, 7 Jun 2016 06:52:21 -0400
MIME-Version: 1.0

klient poczty wyświetla temat wiadomości "QNAP zaprasza do Warszawy na darmową konferencję".

Napisałem również własnego klienta poczty w Javie z użyciem JavaMail API i ten również poprawnie wyświetla temat ale za cholerę nie mogę dojść co to za ciąg znaków w źródle. Nie jest to base64.

Koziołek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Stacktrace
  • Postów: 6823
0

Split po znaku ? i potem już masz base64. Masz zaszyte w temacie dodatkowe informacje o kodowaniu.

02
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1176
0

Jest to base64:

Kopiuj
>>> base64.b64decode('UU5BUCB6YXByYXN6YSBkbyBXYXJzemF3eSBuYSBkYXJtb3fEhSBrb25mZXJlbmNqxJk=?=')
'QNAP zaprasza do Warszawy na darmow\xc4\x85 konferencj\xc4\x99'
>>>
Koziołek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Stacktrace
  • Postów: 6823
0

Bez ostatniego ?=, bo robisz split po ?, poza tym UTF-8:

Kopiuj
str= "=?UTF-8?B?UU5BUCB6YXByYXN6YSBkbyBXYXJzemF3eSBuYSBkYXJtb3fEhSBrb25mZXJlbmNqxJk=?="
ar = str.split("?")
import base64
base64.b64decode(ar[3])
=> b'QNAP zaprasza do Warszawy na darmow\xc4\x85 konferencj\xc4\x99'
base64.b64decode(ar[3]).decode("utf-8")
=> 'QNAP zaprasza do Warszawy na darmową konferencję'

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.