Indy, kodowanie i quotedPrintable

0

Znalazłem podobny post w archiwum, ale...

Oczywiście chodzi o to, że wysyłam maila(treść w memo) za pomocą INDY(TIdMessage) no i w OE odbieram z krzaczkami, zamiast polskich liter.

Znalazłem w archiwum pewne rozwiązanie tego problemu, ale nie działa.

Przekopiowałem funkcję zamieniającą tekst na quoted-printable.
Do TIdMessage dodaję tak:

 msg.CharSet:='Windows-1250';
 msg.ContentType:='text/plain';
 msg.ContentTransferEncoding:='quoted-printable';

 msg.Body.Add(changeQuotedPrintable(memo1.Text));

Ale nie działa. Nieważne, czy w charset wpiszę ISO-8859-2, czy Windows-1250. Za każdym razem są te same krzaczki... Proszę o dodatkową pomoc i nieusuwanie tego posta, z tego względu, że już próbowałem wszystkiego i szukałem wszędzie.

0

A nie możesz konwertowac na ISO przed wysłaniem?

0

A nie możesz konwertowac na ISO przed wysłaniem?
Nic nie daje. Daję charset jako windows-1250, nic. Daję, jako iso-8859-2 też nic.

OE zamiast ą, ś i ź ma krzaczki
To nie jest wina mojego oe, bo wszystkie inne maile(tzn. od innych osób) mam dobre.

0

Przekonwertować- naucz się czytać!
A możesz to zrobic np. tak:

uses StrUtils;
const
  cp1250: array[1..18] of string = ( #185, #230, #234, #179, #241, #243, #156, #159, #191, #165, #198, #202, #163, #209, #211, #140, #143, #175 );
  ISO88592: array[1..18] of string = ( #177, #230, #234, #179, #241, #243, #182, #188, #191, #161, #198, #202, #163, #209, #211, #166, #172, #175 );

function CP1250ToISO88592( const tekst:string ):string;
var x:integer;
begin
  result:=tekst;
  for x:=1 to 18 do
      begin
        result:=AnsiReplaceStr( result, cp1250[x], ISO88592[x] );
      end;
end;

Pewno da się to zrobic inaczej niż konwertując list na ISO ale nie wiem jak, a sprawdzać mi się nie chce :P

0

Dzięki za wszystko.
Znalazłem lamerskie wyjście, które wymagało kilku piw.
Otóż. We właściwości CHARSET nic nie podajemy.

We właściwości CONTENT-TYPE wpisujemy: text/plain; charset="windows-1250"
We właściwości ContentTransferEncoding: quoted-printable

No i cały tekst do body jako quoted-printable.
Działa :)

Kluczowym było to, żeby nic nie dawać do charset.

1 użytkowników online, w tym zalogowanych: 0, gości: 1