PHP Mail UTF-8 Sorunu ve Çözümü

Oluşturduğum bir sistem içerinde UTF-8 içerikleri olan bir formdan php mail fonksiyonunu kullanan bir mail gönderme fonksiyonu yazmıştım. Herşey doğru şekilde işliyor ve ulaşması gereken e-postalar yerine doğru şekilde ulaşıyordu. Ama tek bir sorun kalmıştı ortada. Ulaşan e-postalar Mozilla Thunderbird ve Roundcube (Webmail istemcisi) içerisinde doğru görüntülenebilirken Microsoft Outlook serisinde sıkıntı yaratıyordu. Türkçe karakterler hiç de iyi görüntülenmiyordu işin aslı.

Bunu düzeltirken iconv() fonksiyonunu kullandım. Sizlerle de paylaşmak istedim bu özelliği. php.net üzerindeki şu adresten de Türkçe bilgi ve örneklere ulaşabileceğiniz bu fonksiyon bir karakter kodlaması değiştiricisi olarak kullanılıyor. Yani UTF-8 kodlamayı ISO-8859-9 (Türkçe) kodlamasına çevirebiliyorsunuz.

Örnek olarak gönderim fonksiyonunun ilk hali aşağıda. UTF-8 e-posta gönderiyor kendileri. Ama Outlook hazretleri bunu doğru gönrüntüleyemiyordu.

Sonra iconv() kullandık. Aşağıdaki yeni kodumuz böyle oldu.

Bu kodla birlikte tanımlanan değerlerimizi UTF-8 kodlamasından ISO-8859-9 kodlamasına almasını sonra da göndermesini sağlamış olduk. Tabii gönderilen e-postamızın kodlamasını da ISO-8859-9 a aldık.

İstediğimiz değerin kodlamasını değiştirmek için tek başına fonksiyonumuz da aşağıdaki gibidir.

Daha detaylı bilgi için;
Fonksiyon Bilgisi

utf-8

Selametle

Gelen Aramalar:

  • Mehmet

    Eyvallah hacı. Aynı sorun bende de vardı. Sayende çözüldü. Paylaşım için teşekkürler. Başarılar.

  • Oktay bey,

    Kullandığınız eklenti UTF-8 çıktı ile gönderiyordur. ilgili eklentinin alanına yukarıda anlattığım sistemi uygulayabilirseniz sorununuz düzelecektir.

  • metin

    isime yaradi tesekkurler.

WordPress gururla sunar.Theme: Flat by YoArts. WpAdamı Uyarlaması : Serkan Algur