Php SMTP ile Mail Gönderme (İletişim Formu) Yapımı

Php SMTP ile Mail Gönderme (İletişim Formu) Yapımı

sola ok  Programlama

29.01.2016

1893 Gösterim

TSK Mehmetçik Vakfı
TSK Mehmetçik Vakfı
TSK Mehmetçik Vakfı

Php ile İletişim Formu Scripti


Php ile iletişim formu yapılırken genel olarak php mail fonksiyonu kullanılır. Buna alternatif olan ve mailin gitmesini garanti eden bir diğer yol, SMTP ile iletişim formu üzerinden mail göndermektir. SMTP'nin açılımı, Simple Mail Transfer Protocol'dür. Elektronik posta gönderme protokolüdür. Php'nin normal mail fonksiyonu, herahangi bir doğrulama şartı olmadan istediğimiz bir gönderen adresi tanımlayıp gönderilmeye çalışılır. SMTP'de mail göndermek için gerçek bir mail hesabına ihtiyaç vardır. Bu da, php'nin normal mail fonksiyonuyla karşılaştırıldığında, maillerin gerçekliği ve güvenilirliği daha yüksek olduğundan, giden maillerin spam (gereksiz) klasörüne düşme ihtimali azdır.

Php SMTP Sınıfı olan PHPMailer ile mail göndermek için aşağıdaki linke tıklayıp, PHPMailer sınıfına ait dosyaları indirmeniz gerekmektedir. İndirdiğiniz .rar dosyasının içinde bulunan "class.phpmailer.php", "class.smtp.php", "class.pop3.php" adlı dosyaları sunucunuzun ftp dizinine atın.

PHPMailer sınıfı Dosyaları | İNDİR

Aşağıda bulunan hazırlamış olduğum temel iletişim formu ve altındaki php kodları içinde bulunan mail bilgilerini kendinize göre düzenledikten sonra, web sitenizde kullanarak php iletişim formunuzu çalıştırabilirsiniz.
<meta charset="utf-8"/>
<form method="post">
İsim<br/><input type="text" name="ad"/><br/>
Konu<br/><input type="text" name="konu"/><br/>
E-Posta<br/><input type="text" name="eposta"/><br/>
Mesaj<br/><textarea name="mesaj"/></textarea><br/>
<input type="submit" value="GÖNDER" />
</form>
<?php
if(isset($_POST['ad']) && isset($_POST['eposta']) && isset($_POST['konu']) && isset($_POST['mesaj'])) {
 function epostakontrol($email){if (filter_var($email, FILTER_VALIDATE_EMAIL)){return 1;} else {return 0;}}
 $gelen_mail = $_POST['eposta']; $mail_kontol=epostakontrol($gelen_mail);

 if(empty($_POST['ad']) || empty($_POST['eposta']) || empty($_POST['konu']) || empty($_POST['mesaj'])) {
  echo 'Lütfen boş yer bırakmayın.';
 } else if($mail_kontol == "0"){echo 'Lütfen e-posta adresini doğru girin.';} else{
  include 'class.phpmailer.php';
   $mail = new PHPMailer();
   $mail->IsSMTP();
   $mail->SMTPAuth = true;
   $mail->Host = 'mail.site.com';
   $mail->Port = 587;
   $mail->Username = 'mail@adresi.com';
   $mail->Password = 'Mail Şifresi';
   $mail->SetFrom($mail->Username, $_POST['ad']);
   $mail->AddAddress('mail@site.com', 'İsim Soyisim');
   $mail->CharSet = 'UTF-8';
   $mail->Subject = $_POST["konu"];
   $mail->MsgHTML('İsim:'.$_POST["ad"].'<br/>
       Konu:'.$_POST["konu"].'<br/>
       E-Posta:'.$_POST["eposta"].'<br/>
       Mesaj:'.$_POST["mesaj"].'<br/>');
if($mail->Send()) { echo 'Mesajınız başarıyla gönderildi.';}
else { echo 'Mesaj gönderirken bir hata oluştu ve girmiş olduğunuz bilgiler alınamadı.' . $mail->ErrorInfo;}
 }}
?>

Yukarıdaki kodları kopyalamakla uğraşmak istemiyorsanız aşağıdaki linke tıklayıp dosya halinde indirebilirsiniz.

Php SMTP ile Mail Gönderme (İletişim Formu) Scripti | İNDİR


29.01.2016

Konu hakkında soru sorabilir veya yorumda bulunabilirsiniz.

İsim
Web Site
E-Posta
Mesaj

Yorumlar (2)

  1. Taner Dora

    Merhaba. Formda yer alan tüm yönergeleri eksiksiz yerine getirdiğim halde form göndermeyi başaramadım. Muhakkak atladığım bir nokta var. Benim asıl görüşmek istediğim konu şu. Bir web sitesi hazırlıyorum ve oldukça şık bir iletişim formu var elimde fakat kodları tam olarak çözümleyememem nedeniyle sunucuya iletemiyorum formu. Direkt olarak iletişim formundan sunucuya göndermem gerekiyor fakat web tasarımıyla profesyonel olarak ilgilenmediğim için anlamakta güçlük çekiyorum.Bu konuda yardımcı olabilir misiniz? Tüm görselleri ve kodları mail adresine gönderebilirim. Cevabınızı bekliyorum şimdiden teşekkürler.

    • Furkan Kandemir

      Merhaba, yukarıda anlatılan kısım; ziyaretçinin forma girdiği bilgileri, site sahibinin belirlediği e-postaya gönderme işlemidir. Bahsettiğiniz "sunucuya iletmek"ten kasıt, veri tabanına kaydetmek ise eğer, bu farklı bir konuya giriyor. E-posta adresinize mail gönderdim.

  2. Volkan Özüdoğru

    Üstadım selamlar. Bu smtp ile iletişim formu olayını bir türlü halledemedim. Kafayı yemek üzereyim diyebilirim. Bu iş zor değil sanırım ama ben neden yapamıyorum anlayamadım gitti. Eğer zamanınız olursa sizden bu konuda yardım isteyecektim. Olumlu yada olumsuz mailinizi bekliyorum...

    • Furkan Kandemir

      E-Posta gönderdim.