PHPMailer ile SMTP kullanarak form mail gönderme
Php ile form mail işlemleri genelde mail() fonksiyonu kullanılarak yapılır. Fakat bu fonksiyon spam maile müsait olduğu için genelde hosting firmaları tarafından engellenir. Php ile mail göndermenin diğer bir yolu da SMTP protokolünü kullanmaktır. SMTP protokolü sunucuda varolan bir mail hesabıyla oturum açarak, bu hesap üzerinden mail göndermenizi sağlar.
SMTP ile mail göndermek için yazılmış olan çok başarılı bir kütüphane bulunmakta. PHPMailer.
Şimdi PHPMailer'in kullanımını anlatmaya çalışacağım.
İlk önce şu adresten PHPMailer'i indiriyoruz. rar dosyasını açtıktan sonra ihtiyacımız olan class.phpmailer.php ve class.smtp.php dosyalarını formmailimizin bulunduğu dosya ile aynı dizine atıyoruz.
Form mailimizin php kısmındaki kodlar şu şekilde:
require_once("class.phpmailer.php");
$mail = new PHPMailer();
$mail->AddAddress("mail@alanadi.com","Bizim Site");
$mail->Subject = "İletişim Formu";
$mail->Body = "Mail içeriği";
$mail->IsSMTP();
$mail->Host = "mail.alanadi.com";
$mail->SMTPAuth = true;
$mail->Username = "formmail@alanadi.com";
$mail->Password = "123456";
$mail->IsHTML(true);
$mail->From = $_POST['Email'];
$mail->FromName = $_POST['Isim'];
$mail->Send();
PHPMailer class'ımızı çağırıyoruz ve bir değişkene atıyoruz.
require_once("class.phpmailer.php");
$mail = new PHPMailer();
Bundan sonraki kodlar PHPMailer'in özelliklerinin kullanıldığı kodlardır.
$mail->AddAddress("mail@alanadi.com","Bizim Site");
Mailin gönderileceği adresi belirtir. Bu satır çoğaltılarak birden fazla adrese mail gönderilebilir.
Ayrıca başka bir satır ekleyerek mailimizi BCC olarak başka adreslere de gönderebiliriz.
$mail->AddBCC("mail@baskaalanadi.com","Başka mail");
$mail->Subject = "İletişim Formu";
Gidecek mailin başlığını belirtir.
$mail->Body = "Mail içeriği";
Mailimizin içeriğini belirtir. Form mail gönderirken genelde tablo olarak gönderilmesini isteriz. Buraya istediğimiz gibi tablo kodlarını ekleyerek gönderilmesini sağlayabiliriz. Yalnız bunun için aşağıda yazmış olduğum $mail->IsHTML(true); kodunu eklemek zorundayız.
$mail->IsSMTP();
Kullanacağımız protokolün SMTP olduğunu belirtir.
$mail->Host = "mail.alanadi.com";
SMTP sunucu adresi
$mail->SMTPAuth = true;
true olarak belirtilmişse sunucuda oturum açılacağı anlamına gelir.
$mail->Username = "formmail@alanadi.com";
Mail hesabımızın kullanıcı adı. Genelde mail adresi ile aynı olur.
$mail->Password = "123456";
Şifremiz
$mail->IsHTML(true);
Göndermek istediğimiz içerikte HTML kodlarına izin verilmesi gerektiğini belirtir.
$mail->From = $_POST['Email'];
Gönderilecek mailde kimden kısmını belirtir(E-mail).
$mail->FromName = $_POST['Isim'];
Gönderilecek mailde kimden kısmını belirtir(Ad Soyad).
$mail->Send();
Maili gönderir.
PHPMailer mail göndermek için 25 nolu portu kullanır. Bazı hosting firmaları ve tabiki internet servis sağlayıcıları 25 numaralı portu engellemektedir. Bu yüzden yeni bir satır ekleyerek kullanılacak portu değiştirmemiz gerekir. Şu anda TTnet 587 numaralı portu açık tutuyor.
$mail->Port = 587;
Hepsi bu kadar. Sorularınızı iletişim bölümünden ya da yazı altına yorum ekleyerek iletebilirsiniz.



