Bu makelede sizlere php ile e-posta gönderme yönteminden bahsedeceğim. PHP de 2 farklı yöntem ile mail gönderebiliyoruz.
PHP’nin mail() fonksiyonu ile mail gönderebiliriz ancak bu yöntem güvenli değil. mail() fonksiyonu ile gönderilen maillerde e-posta adresi zorunluluğu olmadı için gönderdiğiniz mailler alıcı tarafında spam(Önemsiz) olarak algılanacaktır.
SMTP protokolünün daha güvenli olmasının sebebi mail gönderirken kullanıcı adı ve şifre doğrulaması zorunluluğudur.
Sizlere SMTP ile mail göndermeyi anlatacağım. Makalenin başlığında olduğu gibi PHPMailer isimli sınıfı kullanacağız.
PHPMailer sınıfına ait tüm kaynak dosyaları bu makalenin alt tarafında bulabilirsiniz.
İndirdiğiniz PHPMailer sınıfına ait kullanacağımız dosyalar ;
class.phpmailer.php
class.smtp.php
class.pop3.php
Öncelikle bu 3 dosyayı projeyi yapacağımız klasöre kopyalamamız gerekiyor.
Kodları direkt yazıyorum ve aşağıda tek tek açıklamalarını da vereceğim.
reuqire("class.phpmailer.php");
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // SMTP_kullaniciadi ile giriş yapılmayacaksa false olması gerekli.
$mail->SetLanguage("tr", "language/");
$mail->CharSet = "utf-8";
$mail->Host = "Mail Sunucumuz";
$mail->Username = "SMTP Kullanıcı Adımız";
$mail->Password = "SMTP Kullanıcı Şifremiz";
$mail->From = "Maili Gönderen Adres";
$mail->FromName = "Maili Gönderen İsim"; // Adınız
$mail->AddAddress("Maili Göndereceğimiz Adres"); // mail gideceği adres
$mail->Subject = "Maili Konusu";
$mail->IsHTML(true);
$mail->Body = "Mail İçeriği";
if (!$mail->Send()) {
echo "Hata ----->>>>> " . $mail - ErrorInfo;
}
echo "Success";
Yukarıda ki kodların açıklamaları
reuqire("class.phpmailer.php");
$mail = new PHPMailer();
//1. Satırda ki kod ile phpmailer sınıfımızı projeye dahil ediyoruz.
//2. Satırda ki kod ile phpmailer sınıfımızı başlatıyoruz.
$mail->IsSMTP();
$mail->SMTPAuth = true;
//PHPMailer sınıfımıza e-posta’yı SMTP protokolüyle göndereceğimizi belirttik.
$mail->SetLanguage("tr", "language/");
$mail->CharSet = "utf-8";
//Göndereceğimiz e-postanın dilini ve karakter setini ayarladık.
$mail->Host = "Mail Sunucumuz";
$mail->Username = "SMTP Kullanıcı Adımız";
$mail->Password = "SMTP Kullanıcı Şifremiz";
$mail->From = "Maili Gönderen Adres";
$mail->FromName = "Maili Gönderen İsim"; // Adınız
//SMTP sunucu adı veya ip adresi, kullanıcı adı, şifre, gönderen adres ve gönderilen mailde gönderen kişi olarak görünecek isim bilgileri bu alanda yazıyoruz.
$mail->AddAddress("Maili Göndereceğimiz Adres"); // mail gideceği adres
$mail->Subject = "Maili Konusu";
$mail->IsHTML(true);
$mail->Body = "Mail İçeriği";
//Bu kısımda maili göndereceğimiz adresi, mailin konusunu ve içeriği yazıyoruz. Aynı zamanda göndereceğimiz mailin içeriğinde html karakterleri kullanacaksak eğer “$mail->IsHTML(true);” kullanmamız gerekiyor.
if (!$mail->Send()) {
echo "Hata ----->>>>> " . $mail - ErrorInfo;
}
echo "Success";
//En son olarak gönderim işlemini tamamlıyoruz ve e-posta gönderim durumunun başarılı ya da başarısız olduğu durumlarda ne yapacağını belirtiyoruz.
Önemli Notlar;
- SMTP portu her zaman 587 olmayabilir. Sunucunuz smtp için hangi portu kullanıyorsa onu ayarlamanız gerekiyor.
- SMTP ile mail gönderimini GMail üzerinden yapacaksanız eğer “$mail->SMTPSecure = ‘tls’;” kodunu eklemeniz gerekiyor.
- E-posta ile dosya eki göndermek istiyorsanız eğer “$mail->AddAttachment(‘ekli_dosya_klasoru/resim.jpg’);” kodunu eklemeniz gerekiyor.
PHP MAILER CLASS -> http://github.com/serdarkaraca/PHP/tree/master/php_mailer_class ÖRNEK PROJE -> http://serdarkaraca.com/files/php-smtp-kullanimi.zip