PHP, e-posta göndermek için yerleşik mail() fonksiyonunu sunar. Bu fonksiyon basit e-posta işlemleri için yeterlidir. Ancak daha profesyonel ve güvenilir çözümler için genellikle PHPMailer gibi kütüphaneler tercih edilir.
1. Basit mail() Fonksiyonu ile Mail Gönderme
<?php
$kime = "ornek@site.com";
$konu = "Test Maili";
$mesaj = "Merhaba, bu bir test e-postasıdır.";
$baslik = "From: admin@benimsitem.com";
if(mail($kime, $konu, $mesaj, $baslik)) {
echo "Mail başarıyla gönderildi.";
} else {
echo "Mail gönderilemedi.";
}
?>
Not: Bu yöntem çoğu sunucuda spam filtresine takılabilir veya hiç çalışmayabilir. SMTP yapılandırması yapılmamışsa mail() fonksiyonu başarısız olabilir.
2. PHPMailer ile Mail Gönderme (SMTP Destekli)
Daha güvenilir ve profesyonel bir çözüm isteyenler için PHPMailer önerilir. SMTP üzerinden gönderim yapılmasını sağlar.
Kurulum
composer require phpmailer/phpmailer
Örnek Kullanım (Gmail SMTP ile)
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = 'seninmail@gmail.com';
$mail->Password = 'uygulama_sifresi';
$mail->SMTPSecure = 'tls';
$mail->Port = 587;
$mail->setFrom('seninmail@gmail.com', 'Senin İsmin');
$mail->addAddress('alicimail@site.com', 'Alıcı İsmi');
$mail->isHTML(true);
$mail->Subject = 'Test Maili';
$mail->Body = '<strong>Merhaba!</strong> Bu bir test mailidir.';
$mail->AltBody = 'Merhaba! Bu bir test mailidir.';
$mail->send();
echo 'Mesaj gönderildi.';
} catch (Exception $e) {
echo \"Mesaj gönderilemedi. Hata: {$mail->ErrorInfo}\";
}
?>
Not: Gmail kullanıyorsan Gmail ayarlarından uygulama şifresi üretmen gerekir. Normal şifre çalışmaz.
3. HTML ve Dosya Ekli Mail Gönderme
$mail->isHTML(true);
$mail->Body = '<h1>Merhaba</h1><p>Bu mail HTML içeriklidir.</p>';
$mail->addAttachment('/yol/resim.jpg', 'resmim.jpg');
Sonuç
- Küçük projelerde mail() fonksiyonu yeterli olabilir.
- Gerçek kullanıcıya mail göndereceksen SMTP üzerinden PHPMailer gibi bir kütüphane kullanmalısın.
- Mail’in spam kutusuna düşmemesi için SPF, DKIM ve uygulama şifreleri gibi ayarlara dikkat et.