Kodowanie maila ort! 1000

0

Witam

Wiem,że to już pewnie nudne,ale mam z tm problem

Gdy moja aplikacja wysyła maila za pomocą komponentu indy, i ustawię Encoding na Mime i charset na windows-1250 lub ISO-8859-2 to pożniej moja aplikacja odczytuje tekst z polskimi znaczkami.jeśli wyślę teakiego maila i odbiorę np. za pomocą klienta Opery też jest ok.

ale jeśli wyślę z opery ustawiając Encoding na np.ISO-8859-2 , to mój program wyświetla krzaczki.próbowałem to zmieniać na tyle sposobów że mam ochote rzucic monitorem.

kiedy powinienem wykryć typ kodowania i jakim sposobem ?
sprawdzić Charset odbieranej wiadomości i ustawić taki sam dla komponentu TIdMessage do którego wczytuje maila ? a może robi się to w inny sposób?

próbowałem używać komponentu Mail2000,tez ma problem z operowym ISO
próbowałem programem z przykładów Indy - to samo
ściągnąłem jakieś źródełka z 4programmers - to samo

pomóżcie bo mój monitor jesst jeszcze całkiem dobry,szkoda by zniszczyć

0

No to z tego wynika ze problem leży po stronie Opery.
A spróbuj wysłać z Opery i odebrać np. w Outlooku itp. - jeśli tam tez wystapi ten blad to wina na 100% jest Opery.

Dopisane
A jeśli wysylasz z Outlooka i odbierasz w tym swoim to tez masz krzaczki zamiast polskich liter?

0
if List2.Selected = nil then
begin
Exit;
end;

memo2.Lines.Clear;
POP.Retrieve(List2.Selected.Index + 1, Msg);

if pos ('text/plain',msg.ContentType)<>0 then
memo2.Lines.AddStrings( msg.Body ) else

      for intIndex := 0 to Pred(Msg.MessageParts.Count) do
      begin
         if (Msg.MessageParts.Items[intIndex] is TIdAttachment) then
            begin 
               li := lvMessageParts.Items.Add;
               li.ImageIndex := 8;
               li.Caption := TIdAttachment(Msg.MessageParts.Items[intIndex]).Filename;
               li.SubItems.Add(TIdAttachment(Msg.MessageParts.Items[intIndex]).ContentType);
            end
         else
            begin 
               if Msg.MessageParts.Items[intIndex] is TIdText then
                  begin
  
                     Memo2.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex]).Body);
                     try
                      WebBrowser1.Refresh;
                      WebBrowser1.OleObject.document.write(Memo2.Text);
                    except
                    end;

                  end
            end;
      end;

msg.Clear;

msg.contenttype jest ustawione na text/plain
msg charset na ISO-8859-2
msg encoding na meMIME

w outloku express dostałem krzaki a oprócz tego do tekstu wiadomości dorzuciło mi wiadomość w formacie html,ale może to norma

co robić,gdzie sie wyłożyłem

0

Jeśli e-mail zawiera tylko część tekstową, a nie zawiera części w htmlu (takiej jak ci dodał outlook), to musisz konwertować sobie znaki na win-1250, bo zapewne twój program wyświetla używając tego kodowania (bo to standartowe windowsowskie). Jeśli natomiast zawiera część html, to bezpośrednio w tejże części jest wskazany sposób kodowania, i jak wyswietlasz to na webbrowser to nie ma problemu.

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