Cześć, przeczytałem już sporo na ten temat.
Mam Delphi 2005 Update 3. NIE JEST to wersja personal.
Mam też Indy 10, dokładnie 10.0.20, a więc dość stare.
Próbuję wysłać maila z polskimi znakami. Cokolwiek bym nie robił, są krzaczki. Jakiegokolwiek bym nie użył kodowania, to i tak w źródle odebranej wiadomości mam: iso-8859-1.
Czytają różne rzeczy, doszedłem do wniosku, że to problem z Indy. Więc zacząłem szukać najnowszej wersji. I tu problem nr 1. Gdzieś znalazłem, że najnowsza to 10.1.coś, a gdzieś indziej, że 10.2.coś. Dodatkowo nie mogę pobrać żadnej wersji, bo nie wiadomo skąd. Na stronach Indy piszą, że pobrana wersja powinna działać, ale może się okazać, że się w ogóle nie skompiluje, bo właśnie nad nią pracują. Co to k*** jest? Jedyny link jaki znalazłem na stronach Indy przenosi donikąd.
Tak więc, czy ktoś wie, jak zdobyć i zainstalować najnowszą wersję Indy 10? A może ktoś wie, jak ominąć ten problem z polskimi znakami?
[DOPISANE]
Jedyne, co udało mi się uzyskać to polskie litery w treści. Natomiast temat nadal zawiera krzaczki.
Okazuje się, że Indy, jeśli są polskie litery, lub skonwertowane znaki na quoted-printable dokleja na początku w nagłówku tematu kodowanie iso-8859-1, w nagłówku wygląda to tak:
Subject:
=?ISO-8859-1?Q?<temat>?=
I nie udaje mi się tego kodowania uniknąć.
Polskie litery w treści uzyskałem za pomocą konwersji, tzn:
IDMessage.CharSet:='iso-8859-2';
IDMessage.Body.Text:=ConvertString(mailContent);
gdzie funkcja ConvertString konwertuje w przekazanym ciągu konkretne znaki:
S:=stringReplace(s, 'ą', chr(StrToIntDef('$B1', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ć', chr(StrToIntDef('$E6', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ę', chr(StrToIntDef('$EA', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ł', chr(StrToIntDef('$B3', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ń', chr(StrToIntDef('$F1', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ó', chr(StrToIntDef('$F3', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ś', chr(StrToIntDef('$B6', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ź', chr(StrToIntDef('$BC', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'ż', chr(StrToIntDef('$BF', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ą', chr(StrToIntDef('$A1', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ć', chr(StrToIntDef('$C6', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ę', chr(StrToIntDef('$CA', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ł', chr(StrToIntDef('$A3', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ń', chr(StrToIntDef('$D1', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ó', chr(StrToIntDef('$D3', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ś', chr(StrToIntDef('$A6', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ź', chr(StrToIntDef('$AC', 0)), [rfReplaceAll]);
S:=stringReplace(s, 'Ż', chr(StrToIntDef('$AF', 0)), [rfReplaceAll]);
zgodnie z tablicą znaków.
Natomiast, tak jak mówię, nie rozwiązuje to problemu z polskimi znakami w treści tematu.
Tak więc problem cały czas istnieje.