Php ile SMTP üzerinden mail gönderme

Php ile mail() fonksiyonu ile değil SMTP üzerinden mail gönderimi yapacabiliceğimiz işlemlerden bahsedelim. mail() fonksiyonu ile gönderilen maillerin bir çoğu spam ve gereksize düşmektedir.

Ayrıca son zamanlarda bir çok hosting firması sunucularından güvenlik nedeni ve ip adreslerinin itibarı blackliste düşmesi için mail() fonksiyonunu devredışı bırakarak sadece SMTP kimlik doğrulamalı mail gönderimine izin vermektedir.

Ayrıca bir çok sunucu artık SMTP sunucusu üzerinden gelmeyen maillerde kabul etmemektedir.

Örnek kodları http://www.yardimmerkezi.net/php_smtp_mail.zip adresinden indirebilirsiniz. Bizim için önem arz eden dosya mail.php dosyasıdır. mail.php dosyası içerisindeki ayarlarımızın bir örneği aşağıda mevcuttur.

<?php

require(“class.phpmailer.php”); // PHPMailer dosyamızı çağırıyoruz
$mail = new PHPMailer(); // Sınıfımızı $mail değişkenine atadık

$mail->IsSMTP(); // Mailimizin SMTP ile gönderileceğini belirtiyoruz
$mail->From     = “[email protected]”; //Gönderen kısmında yer alacak e-mail adresi
$mail->Sender   = “[email protected]”;
$mail->ReplyTo  = “[email protected]”;
$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 = “[email protected]”; //SMTP kullanıcı adı
$mail->Password    = “password”; //SMTP şifre
$mail->WordWrap = 50;
$mail->IsHTML(true); //Mailimizin HTML formatında hazırlanacağını bildiriyoruz.
$mail->Subject  = “Deneme Maili”; // Konu

//Mailimizin gövdesi: (HTML ile)
$body = “<b>Bu mail</b> bir deneme mailidir.<br /><br />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->AddAddress(“[email protected]”); // Mail gönderilecek adresleri ekliyoruz.
$mail->AddAddress(“[email protected]”);

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

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

?>

 

Yorum yapın