Bu içeriği 2 dakikada okuyabilirsiniz.
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;}
}}
?>
<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
Bu içeriği MasivaTurk.com sitesini kaynak göstererek kullanabilirsiniz. İçeriklerin; MasivaTurk.com sitesi kaynak gösterilmeden herhangi bir web sayfasında, sosyal
medyada ve görsel basında yayınlanması yasaktır. Ayrıntılı bilgi için Kullanım Koşulları sayfasını okuyabilirsiniz.
29.01.2016
localhost kullanıyorum phpmailler da hata alıyorum ne yapmam gerekiyor yardımcı olur musunuz
Merhaba. Ben kendi iletişim formumda alanları şu şekilde yaptım doğru mu acaba? $from = 'From: $_POST["email"]'; $sendTo = 'To: '; $subject = 'Konu: $_POST["subject"]';
Kullandığınız değişken isimlerini değiştirmeniz bir sorun oluşturmaz. Kodu kendinize göre düzenleyebilirsiniz.
Merhaba, öncelikle iletişim formu için çok teşekkürler. Sitemde mükemmel çalışıyor. Sizden bir ricam daha olacak; bu sayfanızdaki gibi yorumlar kutucuklarını siteme uyarlamak istiyorum. Bu konuda da yardımcı olabilirseniz minnettar kalacağım. Teşekkür ederim.
Yorumunuz için teşekkür ederim. Sitede bulunan her şey tarafımca kodlanmıştır, bu yüzden, sitedeki herhangi bir tasarımın farklı siteye uyarlanması gibi durumlar, istenilse dahi olmamaktadır. Sitenin tasarımı html/css olduğundan, bu uyarlama durumu olağan dışı. Ancak ekran görüntüsü alınıp, html/css kodları kullanılarak benzeri veya aynısı yapılabilir.
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.
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.
Ü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...
E-Posta gönderdim.