Bir çok hosting firmasında olduğu gibi bizim firmamızda da phpmail() fonksiyonu kapalı durumdadır. Bu fonksiyonun kapalı tutulmasının nedeni, phpmail() fonksiyonunda hiçbir doğrulama olmadan direk olarak mail gönderilebilmesidir. Doğrulama yapılmadan mail gönderimi yapıldığı taktirde spam mail gönderimini engellemek mümkün değildir.Spam maili ve ip adreslerini kara listelere girmesini engellemek için sunucularda mail() ve phpmail() fonksiyonunun kapalı tutulması ve STMP üzerinden mail gönderilmesi gerekir.
Şimdi php üzerinden Smtp bağlantısı yaparak nasıl mail gönderilir bu konuya değinelim. Bunun için PHPMailer kütüphanesini kullanacağız.
PHPMailer kütüphanesini buradan indirebilirsiniz.
İndirdiğimiz kütüphanin içerisindeki class.phpmailer.php, class.smtp.php ve class.pop3.php dosyalarını mail formumuz ile aynı dizine atıyoruz.
Mail formumuzun kodları:
require(“class.phpmailer.php”);
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPDebug = 1; // hata ayiklama: 1 = hata ve mesaj, 2 = sadece mesaj
$mail->SMTPAuth = true;
$mail->SMTPSecure = ‘ssl’; // Güvenli baglanti için ssl normal baglanti için tls olmalıdır.
$mail->Host = “mail.siteismi.com”; // Mail sunucu ismi girilmelidir.
$mail->Port = 465; // Güvenli baglantı için 465 Normal baglantı için 587
$mail->IsHTML(true);
$mail->SetLanguage(“tr”, “phpmailer/language”);
$mail->CharSet =“utf-8”;
$mail->Username = “isim@siteismi.com”; // Mail adresimizin kullanicı adı
$mail->Password = “PASSWORD”; // Mail adresimizin şifresi
$mail->SetFrom(“isim@siteismi.com”, “Isim”); // Mail gönderildiğinde görülecek olan isim
$mail->AddAddress(“ahmetmakal@msn.com”); // Gönderilecek adres - Alıcı
$mail->Subject = “Mesaj Basligi”; // Konu başlığı
$mail->Body = “Mesaj icerigi”; // Mailin içeriği
if(!$mail->Send()){
echo “Mailer Error: “.$mail->ErrorInfo;
} else {
echo “Mesaj gonderildi”;
}
Doldurulması gereken alanları yukarıdaki kodların sonuna bigilendirme olarak yazdım. Yukarıdaki ayarlar ile sunucunuzun SMTP servisini kullanarak sorunsuz mail gönderimi yapabilirsiniz.
Şimdi ücretsiz mail hizmeti veren Gmail ve Yandex için gereken ayarları görelim.
Yandex Smtp Ayarları:
$mail->SMTPSecure = ‘tls’;
$mail->Host = ‘smtp.yandex.com’;
$mail->Port = 587;
Gmail Smtp Ayarları:
$mail->SMTPSecure = ‘ssl’;
$mail->Host = ‘smtp.gmail.com’;
$mail->Port = 465;
Gelelim hazır yazılımlar için Smtp ayarlarının nasıl yapılması gerektiğine. Hazır yazılımların bazılarında PHPMailer kütüphanesini bulunur ve arkada çalışır.SMTP ayarlarını da kullandığınız yazılımın arayüzünden yapabilirsiniz. Örnek olarak bazı yazılımlardaki ayarları aşağıda iletiyorum.
WordPress için WP Mail SMTP eklentisini kurmamız gerekiyor.
Ayarlar > Email bölümünden aşağıdaki ayarları uygulayınız.
From Email: isim@siteismi.com
From Name: İsim
Mailer: Send all WordPress emails via SMTP.
SMTP Host: localhost veya sunucu hostname’si (hostname’ i tarafımızdan öğrenebilirsiniz)
SMTP Port: 465
Encryption: Use SSL encryption.
Authentication: Yes: Use SMTP authentication.
Username: isim@siteismi.com
Password: mailsifresi
vBulletin İçin Smtp Ayarları:
vBulletin Seçenekler > E-Mail ayarları
Buradan Emailleri SMTP-Serveri aracılığı ile gönder seçiyoruz.
SMTP-Serveri: mail.siteadresiniz.com
SMTP Portu: 465
SMTP Kullanıcı Adı: isim@siteismi.com
SMTP Şifresi: Email adresinizin şifresi
SMTP-Serverine garantili bağlanma: SSL
SMF İçin Smtp Ayarları:
Ayarlara ulaşabilmek için Yönetim Masası > Bakım > E=Posta kısmına giriyoruz.
E-Posta türü: SMTP
SMTP sunucusu: ssl://localhost yada ssl://mail.siteadresiniz.com
SMTP bağlantı noktası: 465
SMTP kullanıcı adı: isim@siteismi.com
SMTP şifresi: Email adresinizin şifresi
OpenCart İçin Smtp Ayarları:
Ayarlara ulaşabilmek için System > Settings > Mail kısmına giriyoruz.
Mail Protocol: SMTP
SMTP Host: ssl://localhost yada ssl://mail.siteadresiniz.com
SMTP Username: isim@siteismi.com
SMTP Password: Email adresinizin şifresi
SMTP Port: 465
Her yazılımın kendine özgü SMTP ayarları vardır. Yukarıdaki örnekleri baz alarak kullandığınız yazılımın SMTP mail ayarlarını rahatlıkla yapabilirsiniz.