Bir çok Hosting firmasında olduğu gibi firmamızda da PHP mail() fonksiyonu ile e-posta gönderimine izin verilmemektedir. Bu fonksiyonun kullanılmasına izin verilmemesinin nedeni, PHP mail() fonksiyonunda hiçbir doğrulama olmadan direk olarak e-posta gönderilebilmesidir. Bu şekilde gönderilen e-posta mesajları direkt olarak spam olarak algılanıp gereksiz kutusuna düşebilmekte, fazla gönderimlerde ise sunucu IP adresinin kara listeye girmesine neden olmaktadır.
PHP ile e-posta gönderebilmek için PHPMailer kütüphanesi kullanılarak SMTP bağlantısı ile e-posta gönderimi yapılmalıdır.
PHP ile e-posta gönderebilmek için PHPMailer kütüphanesi kullanılarak SMTP bağlantısı ile e-posta gönderimi yapılmalıdır.
Örnek İletişim Formu
ZIP dosyası içindeki send_mail.php dosyasında gerekli düzenlemeleri yaparak e-posta gönderimi yapabilirsiniz.
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
if($_POST['eposta']<>'' && $_POST['isim']<>'' && $_POST['telefon']<>'' && $_POST['mesaj']<>''){
$isim=$_POST['isim'];
$eposta=$_POST['eposta'];
$telefon=$_POST['telefon'];
$mesaj=$_POST['mesaj'];
$mail = new PHPMailer(true); // Passing `true` enables exceptions
try {
//Server settings
$mail->SMTPDebug = 0; // SMTP hata ayıklama // 0 = mesaj göstermez // 1 = sadece mesaj gösterir // 2 = hata ve mesaj gösterir
$mail->isSMTP();
$mail->SMTPAuth = true; // SMTP doğrulamayı etkinleştirir
$mail->Username = 'gonderen@alanadi.com'; // SMTP kullanıcı adı (gönderici adresi)
$mail->Password = 'şifre'; // SMTP şifre
$mail->Host = 'mail.alanadi.com'; // Mail sunucusunun adresi
$mail->Port = 587; // Normal bağlantı için 587, güvenli bağlantı için 465 yazın
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, '' , 'ssl' , 'tls'
$mail->SMTPOptions = array(
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true,
],
);
$mail->SetLanguage('tr', 'PHPMailer/language/');
//Recipients
$mail->setFrom('gonderen@alanadi.com', 'Adınız Soyadınız'); // Mail atıldığında gorulecek isim ve email
$mail->addAddress('alici@alanadi.com'); // Mailin gönderileceği alıcı adresi
//Content
$mail->isHTML(true);
$mail->Subject = 'İletişim formundan mesajınız var!'; // Email konusu
$mail->Body = "$isim<br />$eposta<br />$telefon<br />$mesaj"; // Mailin içeriği
$mail->CharSet = 'utf-8';
$mail->send();
echo 'Mesaj gönderildi';
} catch (Exception $e) {
echo 'Mesaj gönderilmedi. Hata: ', $mail->ErrorInfo;
}
}