PHP ile E-posta Gönderelim

PHP projelerinde e-posta göndermek neredeyse vazgeçilmez bir uygulama. Bu uygulamada genelde çekilen sıkıntılar, Türkçe karakter sorunu ve HTML formatlı e-posta göndermektir. İlk başlarda ben de bu sorunlarla karşılaşsam da bunlar artık sorun olmaktan çıktı. Şimdi birlikte bir e-posta gönderelim.

Diyelim ki bir gonder.php dosyamız var ve e-posta gönderme işlemini bununla hallediyoruz, dosyamızın içeriği şu olur:

<?php
$kime='kimegidecek@mail.com';
$konu = 'Sanal Edebiyat Üyelik Etkinleştirme';

$basliklar = 'MIME-Version: 1.0' . "\r\n";
$basliklar .= 'Content-type: text/html; charset=utf-8'."\r\n";
$basliklar .= 'From: yonetim@sanaledebiyat.net'."\r\n";
$basliklar .= 'Reply-To: yonetim@sanaledebiyat.net';

$ileti = 'Merhaba, Sanal Edebiyat için aşağıdaki bağlantıya tıklayın.
	<br>
	<a href="http://www.sanaledebiyat.net">www.sanaledebiyat.net</a>
	';

$posta_gonder=@mail($kime, $konu, $ileti, $basliklar);

if (!$posta_gonder){
      echo "E-posta gönderilemedi.";
}
else{
     echo "E-posta gönderildi.";
}
?>

Kodları açıklayalım.

kime='kimegidecek@mail.com';

Yukarıdaki satırda e-posta gönderilecek kişinin adresini veriyoruz.

$konu = 'Sanal Edebiyat Üyelik Etkinleştirme';

Yukarıdaki satırda e-postanın başlığı belirliyoruz.

$basliklar = 'MIME-Version: 1.0' . "\r\n";
$basliklar .= 'Content-type: text/html; charset=utf-8'."\r\n";
$basliklar .= 'From: yonetim@sanaledebiyat.net'."\r\n";
$basliklar .= 'Reply-To: yonetim@sanaledebiyat.net';

1. ve 2. satırla e-postamızın HTML formatlı olduğunu belirtiyoruz. 2. satırdaki “charset=utf-8” bölümünü kendinize göre düzenlemelisiniz.
3. satırda e-postayı gönderenin adresini, 4. satırda e-postanın cevaplanma adresini belirtiyoruz.

$ileti” ile tanımlanmış değişkene istediğimiz HTML kodlarını yazabiliriz.

$posta_gonder=@mail($kime, $konu, $ileti, $basliklar);

Yukarıdaki satırla e-postamızı gönderiyoruz ve sonrasındaki if döngüsüyle e-postanın gönderilip gönderilmediğinin kontrolünü sağlıyoruz.

Not: “@mail($kime, $konu, $ileti, $basliklar)” yerine “mail($kime, $konu, $ileti, $basliklar)” yazarsanız e-posta gönderilmediğinde hata mesajını görebilirsiniz.

Not: Bu uygulamanın çalışması için yerel sunucu (localhost) yerine normal bir sunucu kullanmanız gerekir.

Daha ayrıntılı bilgi için buraya bakabilirsiniz.