Php ile mail göndermek

14 Mart 2007, 18:50 tarihinde yazılmış olup, 6,106 kez okunmuş ve 11 yorum almış

Etiketler:

Bu yazımızda Php web programlama dili ile nasıl e-postalar gönderebileceğinize değineceğiz. Şu an için ileri düzey işlemler gerçekleştirmeyeceğiz (ekli e-postalar yollamak gibi), fakat sadece metin ya da html tabanlı e-postaları nasıl yollayabileceğinizi öğrenebileceksiniz.

3.96


Php ile e-postalar yollamak gayet basit ve tek bir fonksiyon yani mail() ile gerçekleştirilebiliyor. Bu fonksiyonu en basit ve genel olarak şu şekilde kullanabiliyoruz.

PHP:
  1. mail($alici_eposta, $eposta_konusu, $eposta_mesaji)

Yukarıdaki ile bu işlemi en basit yol ile gerçekleştiriyoruz. Yollanacak e-postanın HTML içerikli olmasını, gönderen e-posta adresinin görüntülenmesini, e-posta içeriğinin dil kodunun tanımlanması, e-posta Cc ve Bcc alıcılarının belirlenmesi için headers olarak adlandırılan bilgilerinde gönderilmesi gerekmektedir. O zaman üstteki fonksiyonu şununla değiştiriyoruz.

PHP:
  1. mail($alici_eposta, $eposta_konusu, $eposta_mesaji, $headers)

Bu fonksiyonumuzdaki değişkenleri açıklayalım;

  • $alici_eposta : E-postayı yollayacağınız kişidir.
  • $eposta_konusu : Yollayacağınız e-postanın konusudur.
  • $eposta_mesaji : Yollayacağınız e-postanın içeriğidir.
  • $headers : Gelişmiş e-posta tanımlamalarının tümünü ya da birkaçını içeren değişkendir ve kullanılma zorunluluğu yoktur.

Açıklamalar arasında belirttiğim üzere sondaki $headers değişkenini kullanma zorunluluğu yoktur ve o değerler tanımlanmadan da e-postalar yollanabilir. Peki bu değişken içerisinde ne türden tanımlamalar yapabiliyoruz?

$headers değişkenindeki tanımlamalar

From: E-postanın hangi e-posta adresinden yollandığıdır.
Reply-To: Kişi kendisine yollanan e-postayı yanıtlamak istediğinde, burada tanımlayacağınız e-posta adresine mesajını gönderebilir.
X-Mailer: Maili yollatan yazılımdır.
MIME-Version: E-posta MIME sürümüdür.
Content-type: İçerik türü ve karakter setlerinin tanımlamalarını içerir.
To: E-postanın gönderileceği adres(ler)dir.
Cc: E-postanın kopyasının gönderileceği görünür adres(ler)dir.
Bcc:E-postanın kopyasının gönderileceği gizli adres(ler)dir.

Şu an için aklıma gelenler yukarıdakiler ile sınırlı :) Şimdi örnek birkaç e-posta yollayalım..

Örnek 1

PHP:
  1. $alici_eposta = 'alici@eposta.com';
  2. $eposta_konusu = 'Deneme e-postası yolluyoruz';
  3. $eposta_mesaji = 'Deneme e-postası mesajidir.';
  4. mail($alici_eposta, $eposta_konusu, $eposta_mesaji);

Yukarıdaki satırlar ile "Deneme e-postası yolluyoruz" konulu ve "Deneme e-postası mesajidir." mesajını içeren e-postayı "alici@eposta.com" adresine gönderdik.

Örnek 2

PHP:
  1. $headers = 'From: yollayan@eposta.com' . "\r\n" .
  2.            'Reply-To: yanit@eposta.com' . "\r\n" .
  3.            'X-Mailer: PHP/' . phpversion();
  4. $alici_eposta = 'alici@eposta.com';
  5. $eposta_konusu = 'Deneme e-postası yolluyoruz';
  6. $eposta_mesaji = 'Deneme e-postası mesajidir.';
  7. mail($alici_eposta, $eposta_konusu, $eposta_mesaji, $headers);

Bunun birinci örnekten tek farkı "headers" bilgilerini barındırıyor olması. Böylece e-postamız "yollayan@eposta.com" adresinden yollanmış olacak ve kişi yanıtlamak istediğinde "yanit@eposta.com" e-posta adresi gösterilecek. Ayrıca e-postamızı "PHP/5.2.1" ile gönderdiğimizi belirtmiş olacağız. "5.2.1" yerine sunucunuzdaki PHP sürümü yazacaktır.

Örnek 3

PHP:
  1. $headers  = 'MIME-Version: 1.0' . "\r\n";
  2. $headers .= 'Content-type: text/html; charset=iso-8859-9' . "\r\n";   
  3. $headers .= 'To: Alıcı 1 <alici1@eposta.com>, Alıcı 2 <alici2@eposta.com>' . "\r\n";
  4. $headers .= 'From: Yollayan Kişiyim <yollayan@eposta.com>' . "\r\n";
  5. $headers .= 'Reply-To: Yanit E-Postasi <yanit@eposta.com>' . "\r\n";
  6. $headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
  7. $headers .= 'Cc: acikkopya@eposta.com' . "\r\n";
  8. $headers .= 'Bcc: gizlikopya@eposta.com' . "\r\n";
  9.             
  10.                 
  11. $alici_eposta = 'alici1@eposta.com';
  12. $eposta_konusu = 'Deneme HTML e-postası yolluyoruz';
  13. $eposta_mesaji = '<b><i>Bu kalın ve italik olan bir HTML formatlı yazıdır.</i></b>';
  14. mail($alici_eposta, $eposta_konusu, $eposta_mesaji, $headers);

Bu kez iyice geliştirdik işlemimizi. "Deneme HTML e-postası yolluyoruz" konulu ve içeriği "Bu kalın ve italik olan bir HTML formatlı yazıdır." olan e-postayı HTML formatlı ve "iso-8859-9" karakter setine uyumlu (Türkçe karakterler) olarak, "alici1@eposta.com" ve "alici2@eposta.com" adreslerine gönderdik. Ayrıca aynı e-postanın bir kopyasını görünür olarak "acikkopya@eposta.com" adresine, ve bir diğer kopyasını da bu kez gizli olarak "gizlikopya@eposta.com" adresine gönderdim.

Dikkat edecek olursanız yollayan kişiyi Yollayan Kişiyim < yollayan@eposta.com> tarzında yazdım. Yani başta isim ve sonrasında e-posta girdim. Yollanacak kişinin ismini başına yazabilir ve e-postasını ise <> karakterleri arasına tanımlayabilirsiniz.

Bugünlük bu kadar. Vakit bulduğumuzda ekli e-postaları nasıl yollayacağımızı da göreceğiz ;)

Wordpress.Org Lisans Kullanım Şartları Dmry.net Hakkında

Kullanım şartları yerine getirilmeden hiçbir şekilde kopyala-yapıştır yapılamaz.
eXTReMe Tracker