idMessage ile mail türkçe karakter sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

idMessage ile mail türkçe karakter sorunu

Mesaj gönderen vkamadan »

Merhaba ,
idMessage ve idSMTP nesnelerini kullanarak HTML formatında mail göndermek istiyorum , gerekli yerlere karakter seti olarak iso8859-9 tanımlamasını yapıyorum (göndereceğim HTML dosyasındada yapıyorum) fakat giden mailde hem mail konusundaki türkçe karakterler hem içeriktekiler doğru görüntülenmiyor. Kullandığım kod bloğu,

Kod: Tümünü seç

function Tgecici.MailGonder(Rapor: TFrxReport): Boolean;
var
HTML:TStringList;
begin
   Rapor.Export(frxHTMLExport1);

       try
        IdMessage1.Recipients.EMailAddresses:='volkan@zebrabilgisayar.com';
        IdMessage1.From.Address:='volkan@zebrabilgisayar.com';
        IdMessage1.From.Name:='PoliSoft Tahsilat';
        IdMessage1.From.Text:='PoliSoft Tahsilat volkan@zebrabilgisayar.com';
        IdMessage1.CharSet:='iso-8859-9';
        IdMessage1.Sender.Address:='volkan@zebrabilgisayar.com';
        IdMessage1.Sender.Name:='PoliSoft Tahsilat';
        IdMessage1.Sender.Text:='PoliSoft Tahsilat volkan@zebrabilgisayar.com';

        try
         html:=TStringList.create;
         HTML.LoadFromFile('c:\polimail.htm');
         HTML.Text:=StringReplace(HTML.text,'utf-8','iso-8859-9',[rfReplaceAll]);
        IdMessage1.ContentType:='text/html';
        IdMessage1.Subject :='Tahsilat Yapıldı';
        IdMessage1.Body.Clear;
        IdMessage1.Body.AddStrings(HTML);
        IdMessage1.MessageParts.Clear;

        IdSMTP1.Connect;
        IdSMTP1.Send(IdMessage1);
        IdSMTP1.Disconnect;
        finally
          HTML.free;
        end;

          Result:=True;
       except
          Result:=False;
       end;
end;
Kolay gelsin.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

IdMessage nesnenin InitializeISO eventına şu kodu yaz:

Kod: Tümünü seç

  VCharSet := 'iso-8859-9';
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

Merhaba ,
Bu şekilde, konudaki tükrçe karakter sorunu çözüldü, fakat içerikteki sorun halen devam ediyor,
içerik HTML ini, FastReport un TfrxHTMLExport nesnesinden faydalanarak oluşturuyorum CharSet=utf8 oalrak yaratıyor, bunu StringReplace ile is-8859-9 oalrak değiştiriyorum , gerçi oluşan HTML i bilgisayarımda açtığımda herşey güzel ama mail oalrak gittiğinde sorun var karakterlerde.
Teşekkürler.
Volkan KAMADAN
www.polisoft.com.tr
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Ben html için PageProducer nesnesini kullanıyorum ve Türkçe karakter sorununu bu şekilde halletmiştim, sende bir dene istersen belki onda sorun çıkmaz.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

utf8 oluşturuyorsa aynen bırak Volkan. utf8 Türkçe'yi de destekler. Sen Iso'ya çeviriyorsun ancak karakterler hala 2 byte utf8 gidiyor. O zaman onları da Utf8ToAnsi yapman lazım. ;) Bence hiç gerek yok. Utf8 kalsın.
Kullanıcı avatarı
vkamadan
Kıdemli Üye
Mesajlar: 1935
Kayıt: 17 Mar 2004 03:52
Konum: Adapazarı
İletişim:

Mesaj gönderen vkamadan »

naile yazdı:Ben html için PageProducer nesnesini kullanıyorum ve Türkçe karakter sorununu bu şekilde halletmiştim, sende bir dene istersen belki onda sorun çıkmaz.
PageProducer i ne şekilde kullanıyorsunuz, HTMLDoc.LoadFromFile ile alıp , IdMessage nin Body sine assign ederek denedim değişen bir şey olmadı.

@coderlord , utf8 bırakıyorum , bilgisayarımda düzgün görüntüleniyor hatta Outlook simge durumundayken mail alınca kenarda çıkan mesaj kutusunda TAHSİL FİŞİ düzgün görüntüleniyor ama mesajın için açtığımda İ ler ve Ş hatalı, çok garip gerçektende.
Volkan KAMADAN
www.polisoft.com.tr
Akin_Delphi
Üye
Mesajlar: 163
Kayıt: 06 Nis 2006 12:22

Re: idMessage ile mail türkçe karakter sorunu

Mesaj gönderen Akin_Delphi »

vkamadan yazdı:Merhaba ,

Kod: Tümünü seç

        IdMessage1.CharSet:='iso-8859-9';
Sayın arkadaşım,

Gelen emailin kaynağına baktığınızda

Kod: Tümünü seç

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
tagını görebiliyor musunuz?

Yani yanlış görünüyorla kastınız ş'lerin parçalanmış şekilde durması mı yoksa, ş'nin tek başına yanlış görünüyor olması mı? Eğer parçalanmış (yani iki karakter şeklinde) görünüyorsa, muhtemelen UTF8 problemi. Ancak tek başına doğru olarak gösterilmiyorsa muhtemelen gelen e-mailin kaynak kodunda yukarıdaki tag yok.
Saygılar ve Başarılar.
Cevapla