PHP ile SMTP Protokolü Üzerinden Mail Göndermek

SMTPmail


PHP ile klasik mail gönderme işlemine göre daha güvenilir olan ve çoğu sunucunun izin verdiği SMTP üzerinden mail yollama işlemini gerçekleştireceğiz. Öncelikle niçin PHP’nin hali hazırdaki mail() fonksiyonu ile değil de SMTP üzerinden mail gönderme işlemi yapacağız ona bir açıklama getireyim.

  • Öncelikle direk gönderilen maillerin  spam mail olarak algılanma olasılığının daha yüksek olduğu biliniyor,
  • Bir çok hosting firması gerek güvenlik gerekse IP adreslerinin itibarı açısından PHP’nin mail gönderme fonksiyonunu devre dışı bırakıyor,
  • Bazı mail okuyucular SMTP server tarafından imzalanmamış mailleri kabul etmemekte.

SMTP (Simple Mail Transfer Protocol) Elektronik posta gönderme protokolüdür. PHP’nin normal mail fonksiyonuyla genelde server adına ve herhangi bir doğrulama yapmadan istediğimiz bir gönderen adresi tanımlayarak göndermeye çalışıyoruz, SMTP’de ise maili gönderebilmek için gerçek bir mail hesabına ihtiyacımız var.

Öncelikle PHP Classes sitesinden PHPMailer class’ını indiriyoruz.

İndirdiğimiz pakette class.phpmailer.php ve class.smtp.php adında 2 dosya olmalı. Biz işlemlerimizi yaparken sadece class.phpmailer.php dosyasını çağıracağız. Ayrıca paketin içerisinde yer alan ve sınıfın tüm özellik ve metodlarının açıklamalarının yer aldığı phpmailer_doc.html dökümanına göz atmayı unutmayın. Ben mail gönderirken kullanacağımız birkaç tanesini açıklayacağım. İşte mail göndereceğimiz kodlar:

// PHPMailer dosyamızı çağırıyoruz
require("class.phpmailer.php");

// Sınıfımızı $mail değişkenine atadık
$mail = new PHPMailer();

$mail->IsSMTP(); // Mailimizin SMTP ile gönderileceğini belirtiyoruz
$mail->From     = "user@domain.com"; //Gönderen kısmında yer alacak e-mail adresi
$mail->Sender   = "user@domain.com";
$mail->ReplyTo  = "user@domain.com";
$mail->FromName = "PHP Mailer";
$mail->Host     = "smtp.domain.com"; //SMTP server adresi
$mail->SMTPAuth = true; //SMTP server'a kullanıcı adı ile bağlanılcağını belirtiyoruz
$mail->Username = "user@domain.com"; //SMTP kullanıcı adı
$mail->Password = "password"; //SMTP şifre
$mail->WordWrap = 50;
$mail->Subject  = "Deneme Maili"; // Konu

//Mailimizin HTML formatında hazırlanacağını bildiriyoruz.
$mail->IsHTML(true);

//Mailimizin gövdesi: (HTML ile)
$body = "<strong>Bu mail</strong> bir deneme mailidir. SMTP server ile gönderilmiştir.";

// HTML okuyamayan mail okuyucularda görünecek düz metin:
$textBody = "Bu mail bir deneme mailidir. SMTP server ile gönderilmiştir.";

$mail->Body = $body;
$mail->AltBody = $text_body;

// Mail gönderilecek adresleri ekliyoruz.
$mail->AddAddress("muhittin@muhittinozer.com");
$mail->AddAddress("hedef@domain.com");

if ( $mail->Send() ) 
	echo "Mail gönderildi";
else 
	echo "Mail gönderimi başarısız";

$mail->ClearAddresses();
$mail->ClearAttachments();

Buraları "gomple" benim gençler...

Leave a Reply

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>