Discussion:
Polskie litery w mailu SMTP,INDY
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
konrad
2006-08-07 07:19:02 UTC
Permalink
wykorzystuje komponent Indy do wysyłania maila,
we właściwości "Har-Set" i "Content type" wpisuje "ISO-8859-2", jednak to nie
pomaga.
W treści listu nie ma polskich znaków. Są tylko w tytule korespondencji
widocznej przed otwarciem przesyłki. Bardzo proszę o informację co tu ustawić
aby w liście były prawidłowe polskie znaki.
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Paweł Matejski
2006-08-07 15:58:22 UTC
Permalink
Post by konrad
wykorzystuje komponent Indy do wysyłania maila,
we właściwości "Har-Set" i "Content type" wpisuje "ISO-8859-2", jednak to nie
pomaga.
W treści listu nie ma polskich znaków. Są tylko w tytule korespondencji
widocznej przed otwarciem przesyłki. Bardzo proszę o informację co tu ustawić
aby w liście były prawidłowe polskie znaki.
Bo pewnie tekst masz w innym kodowaniu...
--
P.M.
k***@poczta.onet.pl
2006-08-07 20:37:30 UTC
Permalink
Post by Paweł Matejski
Post by konrad
wykorzystuje komponent Indy do wysyłania maila,
we właściwości "Har-Set" i "Content type" wpisuje "ISO-8859-2", jednak to nie
pomaga.  
W treści listu nie ma polskich znaków. Są tylko w tytule korespondencji  
widocznej przed otwarciem przesyłki. Bardzo proszę o informację co tu ustawić
aby w liście były prawidłowe polskie znaki.
Bo pewnie tekst masz w innym kodowaniu...
--
P.M.
To nie to , wpisanie polskich znaków wprost do Body komponętu SMTP też ni
pomaga. Ewentualnie proszę o podpowiedź jak teks zakodować w ISO-8859-2
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
jh
2006-08-08 07:04:46 UTC
Permalink
Mam tak i działa:

Dla IDMessage:

IdMessage := TIdMessage.Create(nil);
with IdMessage do
begin
ClearHeader;
CharSet := 'ISO-8859-2';
ContentType := 'text/plain';
ContentTransferEncoding := 'quoted-printable';
From.Name := 'TraLala';
Encoding := meMIME;
UseNowForDate := True;
GenerateHeader;
OnInitializeISO := IdInitializeIsoEvent;
end;

procedure TTuNazwaTwojejKlasyLubFormy.IdInitializeIsoEvent(var
VTransferHeader: TTransfer;
var VHeaderEncoding: Char; var VCharSet: string);
begin
VCharSet := 'ISO-8859-2';
end;

function WinToIso(AText: String): String;
var
s: String;
begin
s := AText;
s := ReplaceStr(s, Chr(165), Chr(161));
s := ReplaceStr(s, Chr(140), Chr(166));
s := ReplaceStr(s, Chr(143), Chr(172));
s := ReplaceStr(s, Chr(185), Chr(177));
s := ReplaceStr(s, Chr(156), Chr(182));
s := ReplaceStr(s, Chr(159), Chr(188));
Result := s;
end;

Body i Subject "przepuszczam" przez tę funkcję WinToIso. Nie wiem, gdzie
popełniłem gafę, ale jak dotąd działa bez pudła.

Jacek
k***@poczta.onet.pl
2006-08-08 13:45:34 UTC
Permalink
Post by jh
IdMessage := TIdMessage.Create(nil);
 with IdMessage do
 begin
   ClearHeader;
   CharSet := 'ISO-8859-2';
   ContentType := 'text/plain';
   ContentTransferEncoding := 'quoted-printable';
   From.Name := 'TraLala';
   Encoding := meMIME;
   UseNowForDate := True;
   GenerateHeader;
   OnInitializeISO := IdInitializeIsoEvent;
 end;
procedure TTuNazwaTwojejKlasyLubFormy.IdInitializeIsoEvent(var
VTransferHeader: TTransfer;
 var VHeaderEncoding: Char; var VCharSet: string);
begin
 VCharSet := 'ISO-8859-2';
end;
function WinToIso(AText: String): String;
var
 s: String;
begin
 s := AText;
 s := ReplaceStr(s, Chr(165), Chr(161));
 s := ReplaceStr(s, Chr(140), Chr(166));
 s := ReplaceStr(s, Chr(143), Chr(172));
 s := ReplaceStr(s, Chr(185), Chr(177));
 s := ReplaceStr(s, Chr(156), Chr(182));
 s := ReplaceStr(s, Chr(159), Chr(188));
 Result := s;
end;
Body i Subject "przepuszczam" przez tę funkcję WinToIso. Nie wiem, gdzie
popełniłem gafę, ale jak dotąd działa bez pudła.
Jacek
SUPER DZIĘKI !
function WinToIso() wystarczył.

Natomiast procedurka TTuNazwaTwojejKlasyLubFormy.IdInitializeIsoEvent
nie odpaliła się jak podpiołem ją do formy, napisało mi że nie ma takiego
Eventa.

Ale i tak działa dzięki
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
jh
2006-08-09 05:47:51 UTC
Permalink
Post by k***@poczta.onet.pl
Natomiast procedurka TTuNazwaTwojejKlasyLubFormy.IdInitializeIsoEvent
nie odpaliła się jak podpiołem ją do formy, napisało mi że nie ma takiego
Eventa.
Podłączasz ją do TIdMessage, a możesz ją wpisać do sekcji public formy, na
której masz IdMessage. Ja zrobiłem sobie klasę do wysyłania maili opartą na
INDY10 - samo wysyłanie realizuję w wątku i tam ma tę procedurkę
IdInitializeIsoEvent. O ile dobrze pamiętam bez tego były problemy z
polskimi znaczkami w temacie maila... Coś nie tak z kodowaniem. sprawdź w
nagłówku poczty czy ustawiony jest poprawnie zestaw znaków dla wiadomości i
dla tematu.

Jacek

Kontynuuj czytanie narkive:
Loading...