E-posta Gönderimi PHPMailer veya Mail Fonksiyonu

Web programcılığı stajımda PHP’nin mail() fonksiyonu ve PHPMailer kütüphanesi ile e-posta gönderme işlemlerini öğrendim. Formlardan gelen verileri e-posta olarak iletme sistemi kurdum.

Ali YILMAZ
Ali YILMAZ

Yönetici

43

E-posta Gönderimi (PHPMailer veya Mail() Fonksiyonu)

Stajımın on beşinci haftasında, web sitelerinde sıkça kullanılan bir özellik olan e-posta gönderme sistemlerini öğrendim. İletişim formlarında veya sistem bildirimlerinde kullanıcıya veya yöneticilere e-posta gönderebilen bir yapı kurdum.

1. Mail() Fonksiyonu ile E-Posta Gönderme

PHP’nin mail() fonksiyonunu kullanarak basit bir iletişim formundan gelen verileri e-posta olarak gönderme işlemi yaptım.


<?php
$alici = "admin@site.com";
$konu = "İletişim Formu Mesajı";
$mesaj = "Ad: " . $_POST['ad'] . "\nMesaj: " . $_POST['mesaj'];
$baslik = "From: webform@site.com";

if(mail($alici, $konu, $mesaj, $baslik)){
  echo "E-posta gönderildi.";
} else {
  echo "Hata oluştu.";
}
?>

2. PHPMailer Kullanarak SMTP ile E-Posta Gönderme

Daha güvenli ve profesyonel bir yöntem olarak PHPMailer kütüphanesini kullandım. Bu yöntemle Gmail SMTP sunucusu üzerinden mail gönderebildim.


use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;

require 'PHPMailer/src/Exception.php';
require 'PHPMailer/src/PHPMailer.php';
require 'PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);

try {
    $mail->isSMTP();
    $mail->Host       = 'smtp.gmail.com';
    $mail->SMTPAuth   = true;
    $mail->Username   = 'youremail@gmail.com';
    $mail->Password   = 'yourpassword';
    $mail->SMTPSecure = 'tls';
    $mail->Port       = 587;

    $mail->setFrom('youremail@gmail.com', 'Web Sitesi');
    $mail->addAddress('admin@site.com', 'Yönetici');

    $mail->isHTML(true);
    $mail->Subject = 'Form Mesajı';
    $mail->Body    = 'Ziyaretçi: ' . $_POST['ad'] . '<br>Mesaj: ' . $_POST['mesaj'];

    $mail->send();
    echo 'Mesaj gönderildi.';
} catch (Exception $e) {
    echo "Mesaj gönderilemedi. Hata: {$mail->ErrorInfo}";
}

Form Örneği


<form method="post" action="iletisim.php">
  Adınız: <input type="text" name="ad"><br>
  Mesajınız: <textarea name="mesaj"></textarea><br>
  <input type="submit" value="Gönder">
</form>

Karşılaştığım Zorluklar

  • Mail fonksiyonu bazı sunucularda çalışmadığı için SMTP kullanmam gerekti
  • Gmail SMTP için iki adımlı doğrulama ve özel uygulama şifresi ayarladım
  • PHPMailer klasör yapısı ve namespace yapısını öğrenmem biraz zaman aldı

Genel Değerlendirme

Bu çalışmayla birlikte formdan alınan verilerin e-posta yoluyla gönderilmesini sağlayan altyapıyı öğrenmiş oldum. Mail fonksiyonu küçük çaplı işler için yeterli olabilirken, PHPMailer gibi kütüphanelerle profesyonel, güvenli ve sorunsuz bir yapı kurulabiliyor. Bu sistemleri iletişim formları, üyelik onayları veya bildirim sistemleri gibi alanlarda kullanabileceğimi fark ettim.




Paylaş

Etiketler


Yorum Yok

    Bu Yazıya Hiç Yorum Yapılmamış. İlk Yorum Yapan Sen Ol !

Yorum Yap


Instagram