PHPMailer ile Formdan Mail Gönderme

PHPMailer ile Formdan Mail Gönderme

PHPMailer ile iletişim formundan nasıl mesaj gönderilir? Tabi ben yazımda basit bir örnek olması için iletişim formu örneği kullanacağım ama bu kodlar ile tüm mail gönderme formlarını çalıştırabilirsiniz.

Php ile mail göndemede birkaç yol vardır. Bunlardan en çok kullanılanı gönderilen maillerde standart mail() fonksiyonunu daha pratik olması nedeniyle kullanmaktır. Ancak bu sistem hem güvenli değil, hem artık çoğu hosting firması desteklemiyor hemde giden mesajın spama düşme ihtimali oldukça yüksektir.

SMTP protokolü kullanarak ise mevcut bir mail hesabında oturum açılarak mail gönderilir. Bu durumda daha güvenilir bir mail mesajı gönderildiği için spam ihtimali azalır.

PHPMailer kütüphanesini kullanarak SMTP ile sorunsuz bir şekilde mail gönderebilirsiniz.

Öncelikle konunun altında verdiğim dosyayı indirin. Bu sıkıştırılmış dosya içinde PHPMailer kütüphanesi dosyaları ve örnek bir form var. Kütüphane kodlarını sitenizin istediğiniz bir dizinine atın.

Sonra aşağıdaki kodları sitenizde bulunan mail gönderme formunun üstüne yapıştırın.

require_once("class.phpmailer.php");	if($_POST['mesaj']){
$mail = new PHPMailer(); //nesneyi oluşturuyoruz
$mail->IsSMTP(); //smtp kullanmak için
$mail->Host = "mail.siteadi.com"; //mail sunucunuz
$mail->Port = 587; //
$mail->SMTPAuth = true; //onayı aktive ediyoruz
$mail->Username = "mail@siteadi.com"; //kullanılacak eposta adresi
$mail->Password = "123456"; //şifre
$mail->From = $_POST['email']; //formdan gelen mail adresi
$mail->FromName = $_POST['ad']; //formdan gelen isim
$mail->AddAddress("mail@benimadresim.com","Ben");
$mail->Subject = $_POST['konu']; //formdan gelen konu
$mail->Body = $_POST['mesaj']; //formdan gelen mesaj
if(!$mail->Send())
{
echo "Mesaj Gönderilemedi";
} else {
echo "Mesaj Gönderildi";
}	}

Eğer kütüphane dosyalarını herhangi bir dizine attıysanız o dizinin yolunu class.phpmailer.php önüne eklemeyi unutmayın.

Şimdi hoting hesabınıza gidip bir mail hesabı oluşturun. Bu hesabı mail@siteniz.com veya no-reply@siteniz.com gibi bir adla alabilirsiniz. Normal kullandığınız mail hesabından farklı olması daha güvenli olur.

Hesabı aldıktan sonra kodlarda gerekli yerleri düzenleyin. Mail suncusu genelde mail.siteadresi.com şeklinde olur. Siz genede hosting firmanıza sorabilirsiniz. Sonra oluşturduğunuz mail adresini tam yolu ile birlikte mail@siteadresi.com şeklinde ve şifresini kodlarda belirtilen yerlere yazın.

Örneğimiz için kodlarda elle değiştirilecek bir alan kalmadı.

Şimdi html formumuzu oluşturalım.

<form id="cForm" method="post" action=""><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>&nbsp;Ad Soyad:</td>
</tr>
<tr>
<td>&nbsp;<input type="text" id="ad" name="ad" size="25" class="text"></td>
</tr>
<tr>
<td>&nbsp;Email Adresiniz:</td>
</tr>
<tr>
<td>&nbsp;<input type="text" id="email" name="email" size="25" class="text"></td>
</tr>
<tr>
<td>&nbsp;Konu:</td>
</tr>
<tr>
<td>&nbsp;<input type="text" id="konu" name="konu" size="25" class="text"></td>
</tr>
<tr>
<td>&nbsp;Mesajınız:</td>
</tr>
<tr>
<td>&nbsp;<textarea id="mesaj" name="mesaj" rows="5" cols="50"></textarea></td>
</tr>
<tr>
<td>&nbsp;<div align="left"> <input type="submit" value="Email Gönder" id="sendContactEmail" name="sendContactEmail" class="submit"> <br> </div></td>
</tr>
</table>	</form>

Form zaten klasik bir form. Ekleme veya çıkarma yapabilirsiniz. Bunlarıda formada ayarlayıp, en son aşağıdaki gibi iki kodu birleştirip form.php şeklinde bir dosya oluşturun. Oluşturulan dosyayı sunucunuza gönderip deneme mailini artık gönderebilirsiniz.

<?php
require_once("class.phpmailer.php");	if($_POST['mesaj']){
$mail = new PHPMailer(); //nesneyi oluşturuyoruz
$mail->IsSMTP(); //smtp kullanmak için
$mail->Host = "mail.siteadi.com"; //mail sunucunuz
$mail->Port = 587; //
$mail->SMTPAuth = true; //onayı aktive ediyoruz
$mail->Username = "mail@siteadi.com"; //kullanılacak eposta adresi
$mail->Password = "123456"; //şifre
$mail->From = $_POST['email']; //formdan gelen mail adresi
$mail->FromName = $_POST['ad']; //formdan gelen isim
$mail->AddAddress("mail@benimadresim.com","Ben");
$mail->Subject = $_POST['konu']; //formdan gelen konu
$mail->Body = $_POST['mesaj']; //formdan gelen mesaj
if(!$mail->Send())
{
echo "Mesaj Gönderilemedi";
} else {
echo "Mesaj Gönderildi";
}	}
?><form id="cForm" method="post" action=""><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>&nbsp;Ad Soyad:</td>
</tr>
<tr>
<td>&nbsp;<input type="text" id="ad" name="ad" size="25" class="text"></td>
</tr>
<tr>
<td>&nbsp;Email Adresiniz:</td>
</tr>
<tr>
<td>&nbsp;<input type="text" id="email" name="email" size="25" class="text"></td>
</tr>
<tr>
<td>&nbsp;Konu:</td>
</tr>
<tr>
<td>&nbsp;<input type="text" id="konu" name="konu" size="25" class="text"></td>
</tr>
<tr>
<td>&nbsp;Mesajınız:</td>
</tr>
<tr>
<td>&nbsp;<textarea id="mesaj" name="mesaj" rows="5" cols="50"></textarea></td>
</tr>
<tr>
<td>&nbsp;<div align="left"> <input type="submit" value="Email Gönder" id="sendContactEmail" name="sendContactEmail" class="submit"> <br> </div></td>
</tr>
</table>	</form>

Bu şekilde ki mail gönderme fonksiyonunu siz istediğiniz şekle sokup kullanabilirsiniz. Şifremi unuttum, üye bilgileri gönderme gibi sayısız işte kullanabilirsiniz.

Bu kodları kendi sunucu mail hesabınız üzerinden değilde gmail hesabınız üzerinden kullanmak isterseniz host ve port bölümünü aşağıdaki gibi değiştirin;

$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->SMTPSecure = 'tls';

Göndereceğiniz maile dosya eklemek için;

$mail->AddAttachment('img/resim.jpg');

kodunu araya ekleyin. Formda dosya yükleme butonu ekleyerek dosyayı form üzerinden de alabilirsiniz.

Yukarıda bahsettiğim gibi mail gönderme fonksiyonu için ayrı bir mail hesabı alın demiştim. Şimdi giden mesaja nasıl cevap gelecek ona bakalım. bunun için forma aşağıdaki kodu ekleyin ve karşı taraf cevap yazaren hangi hesaba gelmesi gerektiğini yazıın.

$mail->AddReplyTo('cevapmail@siteadresi.com', 'Re: Cevap');

Hepsi buu kadar, kolay gelsin..


Bu yazıyı 5 yıldız üzerinden kaçla değerlendirirsiniz?
Daha önce bu yazı 1 kez değerlendirilmiş ve ortalama 5 yıldız verilmiş.
Bu yazı daha önce 802 kez okundu.

Yorum Yaz

    Yorumlar

    Bu yazıya henuz bir yorum yapılmamış. İlk yorumu yapan siz olun!
İstanbul Firma, İlan, Gezi Rehberi ve Haberleri instagram takipçi satın al