Ebu Ziya Tevfik Sk. No:16/4 Çankaya/Ankara
+90 551 123 9331

PHP ile SMTP’den Mail Gönderme

Php kullanarak mail atmanın pek çok farklı yolu var. Php içinde de yer alan Mail Fonksiyonu kullanarak yapabileceğiniz gibi, bu yazıda anlatılacağı üzere çok daha basit olan SMTP kullanarak mail gönderimi de mevcut olarak sunulur.

SMTP adında da anlaşılacağı üzere Basit Mail Aktarım Protokolü (Simple Mail Transfer Protocol), basit olmasının yanında oldukça da güvenilir bir yapıya da sahiptir. Bu durumun nedeni ise php dilinin mail fonksiyonunu kullandığınızda server adına bir doğrulama almıyor olmanızdır. Gönderilen elektronik postalar “Spam” klasörüne düşebilir. Doğal olarak da spam sebebiyle gözden kaçabilir. Bu durum ise hem maddi hem de manevi ciddi kayıplara neden olabilir. Ancak Smtp ile bir mail adresi üzerinden gönderim yapıldığından, böyle bir sorun ile karşılaşmak pek de mümkün olmayacaktır. 

İsteğe bağlı olarak dilediğiniz mail sunucusundan gerekli Host ve Port bilgilerini alarak bu işlemi kolaylıkla yapabilirsiniz. Dns ayarlarınızı Gmail şeklinde düzenlemek ve detaylı bilgi almak için şu linke bir göz atabilirsiniz.

SMTP Sınıfı : PHPMailer

Tamamen açık kaynak kodlu olan PHPMailer sınıfı işin çok büyük bir kısmını hallediyor. Yalnızca mail göndermek ile kalmayıp aynı zamanda da ek gönderme, birden fazla kullanıcıya mail gönderme ve yanıt adresini değiştirmek gibi çeşit çeşit işlemleri de kolaylıkla yapılmasını sağlıyor. 

Yapmanız gereken şu adresten indireceğiniz dosyalarını sunucunuza eklemek ve mail gönderme kodunuza bu sayfa ile güncellemenizdir. Sınıfta yapılan güncellemeleri buradan kontrol edebilirsiniz.

Örnek Kod 

PHPMailer kullanarak SMTP ile mail göndermek için kullanılacak kod aşağıdaki gibidir. Burada dikkat edilmesi gereken en önemli nokta ise “class.phpmailer.php” dosyası ve “class.smtp.php” dosyalarının sunucunuzda olması ve doğru path de bulunması olarak öne çıkmaktadır.

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;
}

Mail gönderme kodu bu kadar basit bir şekilde çalışmaktadır. Mail gönderimi sunucusu olarak, kendi sunucunuza ait ayarlar yerine aynı zamanda Gmail kullanmak isterseniz de o zaman kodunuzu şu şekilde kolaylık ile değiştirebilirsiniz.

$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';

Mail ile Dosya Gönderimi

Mailiniz ile birlikte bir dosya göndermek isterseniz, sınfın AddAttachment özelliğini kullanabilirsiniz. Bunu kullanmak için ise şu adımı uygulayabilirsiniz.

$mail->AddAttachment(‘img/gonderilecek_resim.jpg’);

Birden Fazla Kullanıcıya Mail Gönderimi

Maili tek bir kişi yerine birden fazla kişiye göndermek isterseniz ise sınıfın AddCC ve AddBCC özellikleri devreye giriyor. Kullanımı AddAddress özelliği ile tamamen aynı olarak sunuluyor.

$mail->AddAddress('baska@biri.com', 'Başkası');
$mail->AddCC('baska@iki.com', 'Diğeri');
$mail->AddBCC('baska@ucu.com', 'Öteki');

Farklı Yanıt Adresi Belirleme

Mail gönderdiğiniz kişilerin, gönderilen mailden farklı bir maile cevap yazmanızı istediğiniz durumlarda AddReplyTo özelliğini kullanabiliriz. Tüm sistemde olduğu gibi bu özelliğin kullanımı da oldukça basit bir şekilde sunulmaktadır.

$mail->AddReplyTo('cevaplar@buraya.com', 'Cevapçı');

Farklı örnekleri incelemek ve daha detaylı bilgi almak isterseniz de şurayı ziyaret edebilirsiniz.

Leave A Comment

Mesaj Gönder
WhatsApp Destek Hattı
TPKmedya Destek Hattı
Merhaba🙌😊
HEMEN ARA