Bu eğitselde PHPMailer kullanımı ile ilgili yönergeler yer almaktadır.
PHPMailer nedir?
PHP programlama dili ile hazırlanmış yazılımlarda kullanılabilen, bir email adresine mail göndermek için sizin belirlediğiniz bağlantı bilgileriyle mail sunucusu ile haberleşerek uygun ortamı hazırlayan bir PHP sınıfıdır.
PHPMailer neden gerekli?
PHP programlama dilinin standart mail gönderme fonksiyonu olan mail() fonksiyonu günümüzde tüm paylaşımlı hosting servislerinde -spam mail gönderimini önlemek amacıyla- engelli durumdadır. Ancak, bu sunucu üzerinden mail gönderilemeyeceği anlamına gelmemektedir. Alternatif olarak, sunucu ile SMTP protokolü aracılığıyla haberleşen ve sunucu üzerinde kimlik doğrulama yapan bir mailer script kullanılabilir. PHPMailer, bu ihtiyacı en iyi şekilde karşılamaktadır.
PHPMailer nasıl kullanılır?
Alt başlıkları takip ederek bir iletişim formu ve mail göndermek için bir PHP sayfası oluşturabilirsiniz.
Email hesabı oluşturun
PHPMailer’in mail sunucusunda kimlik doğrulama yapabilmesi için gerçek bir email hesabına ihtiyacı vardır. Öncelikle bir email hesabı oluşturup, şifresini not ediniz.
İletişim formu sayfası oluşturun
PHP uzantılı bir dosya oluşturup, aşağıdaki kodları bu dosyaya dahil ediniz.
<?php header("Content-type: text/html; charset=utf-8"); ?> <form action="sendmail.php" method="post"> <label for="name">İsim:</label><br> <input type="text" name="name" id="name"><br> <label for="mail">Mail</label><br> <input type="text" name="mail" id="mail"><br> <label for="subject">Konu</label><br> <input type="text" name="subject" id="subject"><br> <label for="message">Mesajınız</label><br> <textarea name="message" cols="30" rows="10" id="message"></textarea><br><br> <input type="submit" value="Gönder"> </form>
İşlem sayfası oluşturun
sendmail.php ismiyle bir PHP uzantılı dosya oluşturup, aşağıdaki kodları bu dosyaya dahil ediniz.
<?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'src/Exception.php'; require 'src/PHPMailer.php'; require 'src/SMTP.php'; $mail = new PHPMailer(true); try { //Server settings $mail->CharSet = 'UTF-8'; $mail->SMTPDebug = 0; // debug on - off $mail->isSMTP(); $mail->Host = 'mail.alanadiniz.com'; // SMTP sunucusu örnek : mail.alanadi.com $mail->SMTPAuth = true; // SMTP Doğrulama $mail->Username = 'isim@alanadiniz.com'; // Mail kullanıcı adı $mail->Password = 'Şifreiniz'; // Mail şifresi $mail->SMTPSecure = 'tls'; // Şifreleme $mail->Port = 587; // SMTP Port $mail->SMTPOptions = array( 'ssl' => array( 'verify_peer' => false, 'verify_peer_name' => false, 'allow_self_signed' => true ) ); //Alıcılar $mail->setfrom('isim@alanadiniz.com', 'İletişim Formu'); $mail->addAddress($_POST['mail']); $mail->addReplyTo($_POST['mail'], $_POST['name']); //İçerik $mail->isHTML(true); $mail->Subject = 'İletişim Formu.'; $mail->Body = $_POST['message']; $mail->send(); echo "Mesajınız İletildi --> ".$_POST['mail']."<br>"; } catch (Exception $e) { echo 'Mesajınız İletilemedi. Hata: ', $mail->ErrorInfo; } ?>
İşlem sayfasını düzenleyin
6. satırdaki değişkene mail sunucusunun adresini yazıyoruz. Eğer cPanel veya Plesk Panel kullanıyorsanız; mail.domain.com, Maestropanel kullanıyorsanız smtp.domain.com şeklinde düzenlemelisiniz.
8.satırdaki değişkene oluşturduğunuz email hesabını yazınız.
9.satırdaki değişkene oluşturduğunuz email hesabının şifresini yazınız.
10.satırdaki değişkene bağlanmak istediğiniz şifrleme yöntemini yazınız, tls veya ssl kullanabilirsiniz.
11.satırdaki değişkene bağlandığınız şifrleme yöntemine göre port numarası giriniz. TLS kullanıyorsanız 587, SSL kullanıyorsanız 465 yazınız.
12.satırdaki değişkene 8.satırda yazdığınız email hesabını yazınız.
13.satırdaki değişkene gelen iletideki görüntülenecek ismi yazınız.
15.satırdaki değişkene iletinin gönderileceği email adresini yazınız.
PHPMailer dosyalarını yükleyin
PHPMailer’i Github üzerinden indirip, bu dosyalarınızın bulunduğu dizine yükleyiniz.
https://github.com/PHPMailer/PHPMailer/archive/master.zip adresinden bu dosyaları indirebilirsiniz. Src klasörünü sitenize yüklemeniz yeterli olacaktır.
Hata inceleme
Eğer mail gönderme esnasında problem yaşıyorsanız aşağıdaki kod ile hata iletisini aktif edebilirsiniz. Bu kodu 14. satırdan önce yazmalısınız.
$phpmailer->SMTPDebug = 2;
yazı açıklayıcı fakat web sitene koyduğun sağ tık engeli yüzünden hiçbir işe yaramıyor. sadece zaman kaybı oldu benim için. bilmeni istedim. benim gibi hüsranla yorum bile yapmadan giden çok kişi vardır eminim. düzeltirsen bu durumu yorumlar da artar teşekkürler de. iyi çalışmalar
Merhaba Ahmet Bey, geri bildiriminiz için teşekkür ederiz. Sağ tık engelleme özelliği kalıcı olarak kapatılmıştır. İyi günler dileriz.
CLIENT: 220 smtp.gmail.com ESMTP v17-20020a170906293100b0077a11b79b9bsm3662325ejd.133 – gsmtp Bu hatayı alıyorum nedeni nedir acaba
Form çalışıyor anca mesaj kısımdan hariç bilgiler iletilmiyor. Yani isim, mail, konu filan iletilmiyor. Sebep?