PHPMailer Kullanımı?
PHPMailer kullanımı için SMTP destekli bir mail sunucusuna kayıtlı mail hesabı gerekiyor. Bu mail sunucusu gmail,hotmail,yandex gibi birçok mail sunucusu olabileceği gibi sitenizin kendine ait mail sunucusu da olabilir.
İlk olarak en çok bilinen mail sunucuların SMTP ayarlarına bakalım.
# GMAİL SMTP Ayarları
SMTP Sunucusu : smtp.gmail.com
SMTP Port : 587 / 465
STMP Veri Gizliliği : tls / ssl
# YANDEX SMTP Ayarları
SMTP Sunucusu : smtp.yandex.com
SMTP Port : 587 / 465
SMTP Veri Gizliliği : tls / ssl
# HOTMAİL SMTP Ayarları
SMTP Sunucusu : smtp.live.com
SMTP Port : 587
SMTP Veri Gizliliği : tls
Kendinize Ait SMTP Destekli Sunucu
Normalde hosting ve domain hizmeti alsanız bile hosting şirketinin size vereceği bir e-posta hizmeti bulunur.
Web sunucunuzun ayarlar kısmında bu yapılandırma ayarlarına dair mail sunucu bilginiz , e-posta alımı için gerekli bağlantılar olan IMAP , POP3 portları ve SMTP portları belirtilir. Bu bilgileri kullanarak kendi sitenize ait mail adresinizi SMTP mail gönderimi için kullanabilirisiz.
# Adım 1 : SMTP desteki bir email adresi açalım.
# Adım 2 : PHPMailer Sınıfı indirelim.
PHPMailer adresinden PHPMailer sınıfını indirebilirsiniz.
# Adım 3 : İletişim formu oluşturalım.
PHP İletişim Formu buradan daha önce oluşturduğumuz iletişim formuna ulaşabilirsiniz.
# Adım 4 : İndirdiğimiz PHPMailer sınıfındaki src ve language klasörlerini projemizin olduğu klasöre kopyalayalım.
# Adım 5 : Form Kontrolünü yapacağımız .php dosyasına PHPMailer sınıflarımızı çağıralım.
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'src/Exception.php';
require 'src/PHPMailer.php';
require 'src/SMTP.php';
# Adım 6 : Formumuzun daha iyi bir hal alması ve kullanıcıya bilgi vermek amacıyla POST değerlerini kontrol edelim.
$email = isset($_POST['email']) ? $_POST['email'] : null;
$subject = isset($_POST['subject']) ? $_POST['subject'] : 'E-posta Konusu';
$content = isset($_POST['message']) ? $_POST['message'] : null;
# Adım 7 : SMTP ve PHPMailer Ayarlarını yapalım.
$mail = new PHPMailer(true); //PHPMailer Sınıfı aktif ettik.
try {
$mail->setLanguage('tr'); //Dil ayarını yaptık.
//$mail->SMTPDebug = 2; herhangi bir hata oluştuğunda ayrıntılı bir şekilde bilgi verecektir.
$mail->isSMTP(); //SMTP ayarını aktif etmek.
$mail->Host = 'test.test.com'; //mail servisi host name
$mail->SMTPAuth = true; //smtp sunucu
$mail->Username = Bu e-Posta adresi istenmeyen posta engelleyicileri tarafından korunuyor. Görüntülemek için JavaScript etkinleştirilmelidir.'; //alıcı mail adresi
$mail->Password = '*******'; //alıcı mail adresi parolası
$mail->SMTPSecure = 'tls'; //STMP güvenliği
$mail->Port = 587; //STMP port ayarı
$mail->CharSet = 'UTF-8';
// maili gönderen kişi
$mail->setFrom($email, $subject); //Gonderen mail
$mail->addAddress(Bu e-Posta adresi istenmeyen posta engelleyicileri tarafından korunuyor. Görüntülemek için JavaScript etkinleştirilmelidir.',$subject); //alıcı mail
$mail->addReplyTo($email, $subject); //Gonderen mail
$mail->isHTML(true); //HTML formatı aktif
$mail->Subject = $subject; //Mesaj konusu
$mail->Body = $content; //Mesaj içeriğini
$mail->send();
echo "Mail gönderme işlemi başarıyla gerçekleşti.";
} catch (Exception $e){
echo $e->errorMessage();
}
# STMP Debug özelliğinin alabileceği değerler
# 1 -> Kullanıcı (client) tarafındaki süreci gösterir.
# 2 -> Hem client hem server (sunucu) tarafındaki süreci gösterir.
# 3 -> Client , server ve bağlantı sürecini gösterir.