PHP SMTP Sınıfı: PHPMailer
Bu olay için sıfırdan nasıl kodlanacağını değil, var olan çok özellikli açık kaynak SMTP sınıfını nasıl kullanacağımızı göstereceğim. Bu güzel sınıfa şu adresten ulaşıp şuralardan güncel sürümünü indirebilirsiniz.
Kullanımı inanın gayet basit ve mail olaylarıyla alakalı istediğiniz her şeyi yapmak mümkün (dosya göndermek, birden fazla alıcı eklemek, yanıt adresini değiştirmek vs.)
Mail Göndermek
PHPMailer sınıfı ile SMTP mail göndermek için “class.phpmailer.php” ve “class.smtp.php” dosyalarını alıp aşağıdaki kod bloğunu kullanmanız yeterli. İlgili yerlere kendi sunucunuzun host, port ve kullanıcı adı şifre bilgilerinizi girin.
include 'class.phpmailer.php';
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = 'smtp.sitem.com';
$mail->Port = 587;
$mail->Username = 'benim@adresim.com';
$mail->Password = 'çokgizlişifre';
$mail->SetFrom($mail->Username, 'Benim Adım');
$mail->AddAddress('alici@adresi.com', 'Alıcının Adı');
$mail->CharSet = 'UTF-8';
$mail->Subject = 'Mail Başlığı';
$mail->MsgHTML('Mailin içeriği!');
if($mail->Send()) {
echo 'Mail gönderildi!';
} else {
echo 'Mail gönderilirken bir hata oluştu: ' . $mail->ErrorInfo;
}
Olay bu kadar düzenli ve basit. Eğer yukarıda da bahsettiğim gibi kendi sunucunuzu kullanmak yerine varolan Gmail hesabınız ile bu olayı kullanmak istiyorsanız yukarıdaki host ve port bölümü aşağıdaki gibi değiştirin:
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';
Göndereceğiniz mailin içerisine dosya eklemek için AddAttachment metodunu kullanacağız. Örneğin bir resim göndermek için:
Mail ile dosya göndermek
$mail->AddAttachment('img/gonderilecek_resim.jpg');
Bu kadar basit.
Birden fazla kişiye gönderme
Birden fazla alıcı eklemek için ekstra bir şeye ihtiyaç yok. Yukarıda alıcı adresi tanımladığımızAddAddress metodunu tekrar kullanabiliriz. Ama eğer CC ya da BCC eklemek istiyorsanız onun için de AddCC ya da AddBCC metodlarını kullanmanız yeterli.
Yeri gelmişken CC ile BCC arasından da bahsetmek gerekirse; CC: “Carbon Copy” yani bir kopyasını da bu şekilde eklenmiş adreslere gönderir. BCC: “Blend Carbon Copy” CC ile aynı tek farkı buraya yazılan adresler diğer gönderilen kişilerde gözükmez.
$mail->AddAddress('baska@biri.com', 'Başkası');
$mail->AddCC('baska@iki.com', 'Diğeri');
$mail->AddBCC('baska@ucu.com', 'Öteki');
Yanıt adresini değiştirme
Eğer gönderdiğiniz adrese değilde başka bir adrese cevap yazılmasını istiyorsanız AddReplyTometodu ile cevap atılmasını istediğiniz mail adresini yazmanız yeterli.
$mail->AddReplyTo('cevaplar@buraya.com', 'Cevapçı');
YORUM YAPMAK İSTER MİSİN?