Form Mail Gönderimi
Merhabalar,
Bu yazımda HTML ile oluşturduğumuz formun PHP ile istediğimiz mail adresine gönderimini bir örnek ile sağlayacağım. Öncelikle sitenizde SMTP ayarlarınızı yaptığınızdan emin olmalısınız. Aksi takdirde mail gönderimi çalışmayacaktır. Ayrıca bu sistem localhost üzerinde çalışmaz.
İlk olarak HTML tarafında Bootstrap yardımıyla mobil uyumlu bir form oluşturalım. Aşağıda örnek bir formun CodePen bağlantısını bulabilirsiniz:
İletişim Formu Örneği – CodePen
Bootstrap sayesinde CSS yazmadan sade ve responsive bir form oluşturabiliyoruz. Bu formda dikkat etmeniz gereken alanlar şunlardır:
- input ve button elemanlarının
name
değerleri - form etiketinin
action
değeri (örn: "mailgonder.php") - form etiketinin
method
değeri (en uygun olanı:post
) - label ve input eşleştirmesi için
for
veid
değerlerinin aynı olması
Form hazır. Şimdi form gönderildikten sonra çalışacak olan PHP kodlarını sayfanın en üst kısmında yazalım:
<?php
if(isset($_POST['fg-gonder'])){
$kime = "test@furkangiray.com";
$adi = $_POST['adi'];
$soyadi = $_POST['soyadi'];
$eposta = $_POST['eposta'];
$telefon = $_POST['telefon'];
$mesaj = $_POST['mesaj'];
$konu = "Örnek İletişim Formu";
$mesaj = '
<html>
<title>Örnek İletişim Formu</title>
<p>'.$adi.' '.$soyadi.' aşağıdaki bilgiler ile size form gönderdi:</p>
<p><b>İsim:</b> '.$adi.'</p>
<p><b>Soyisim:</b> '.$soyadi.'</p>
<p><b>E-posta:</b> '.$eposta.'</p>
<p><b>Telefon:</b> '.$telefon.'</p>
<p><b>Mesaj:</b> '.$mesaj.'</p>
</html>
';
$header = "Content-type: text/html; charset=utf-8\r\n";
mail($kime, $konu, $mesaj, $header);
echo "<p class='alert alert-success'>Başarıyla gönderildi. Teşekkür ederiz <strong>" . $adi . "</strong>, sizinle iletişime geçeceğiz.</p>";
}
?>
Bu PHP kodu şu işlemleri yapar:
isset()
ile formun gönderilip gönderilmediğini kontrol eder.$_POST['name']
ile formdan gelen verileri alır.- Bu verilerle HTML biçimli bir e-posta içeriği oluşturur.
Content-type
başlığı ile karakter sorunlarını önler.mail()
fonksiyonu ile form verilerini belirttiğiniz e-postaya gönderir.- Başarı mesajını kullanıcıya gösterir.
PHP mail()
fonksiyonu hakkında detaylı bilgi için resmi PHP dokümantasyonunu inceleyebilirsiniz: mail() - PHP.net
Formlar web sitelerinde en sık karşılaşılan yapılardan biridir. Bu işlemi dinamik hale getirip mail gönderimi sağlamak birçok projede işinize yarayacaktır.
Umarım faydalı olmuştur.
Mutlu kodlamalar! :)