Php ile mail göndermek

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.

PHP ile HTML, Gizli, CC, BCC Mail Göndermek, Yollamak Örnekleri

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

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.

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

$alici_eposta = '[email protected]';
$eposta_konusu = 'Deneme e-postası yolluyoruz';
$eposta_mesaji = 'Deneme e-postası mesajidir.';
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ı “[email protected]” adresine gönderdik.

Örnek 2

$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$alici_eposta = '[email protected]';
$eposta_konusu = 'Deneme e-postası yolluyoruz';
$eposta_mesaji = 'Deneme e-postası mesajidir.';
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 “[email protected]” adresinden yollanmış olacak ve kişi yanıtlamak istediğinde “[email protected]” 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

$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-9' . "\r\n";
$headers .= 'To: Alıcı 1 , Alıcı 2 ' . "\r\n";
$headers .= 'From: Yollayan Kişiyim ' . "\r\n";
$headers .= 'Reply-To: Yanit E-Postasi ' . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion() . "\r\n";
$headers .= 'Cc: [email protected]' . "\r\n";
$headers .= 'Bcc: [email protected]' . "\r\n";

$alici_eposta = '[email protected]';
$eposta_konusu = 'Deneme HTML e-postası yolluyoruz';
$eposta_mesaji = 'Bu kalın ve italik olan bir HTML formatlı yazıdır.';
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, “[email protected]” ve “[email protected]” adreslerine gönderdik. Ayrıca aynı e-postanın bir kopyasını görünür olarak “[email protected]” adresine, ve bir diğer kopyasını da bu kez gizli olarak “[email protected]” adresine gönderdim.

Dikkat edecek olursanız yollayan kişiyi Yollayan Kişiyim < [email protected]> 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 😉