Esrarengiz.NET
Moderator
PHP Mail formu yapımı
PHP’de e-posta göndermek gayet basit ve sadece mail() fonksiyonu ile gerçekleşiyor. En az üç parametre ile çalışan bu fonksiyona posta gönderilecek adresi, mesajın konusunu ve mesajın içeriğini yazarız.
Dördüncü parametresi ile başlıkları kullanarakta birden fazla kullanıcıya göndermeye ya da gönderici e-posta adresini belirtme gibi ifadeler ekleyebilirsin.
Tüm bu mail gönderme işlerine girmeden önce bir mail formu yapmamız gerekiyor. HTML formları hakkında daha fazla bilgi almak için önceki yazımıza göz atabilirsin.
Mail formu hazırlamak
Formumuzu hazırlarken HTML kullanacağız. Yani arayüz ve form elementlerini HTML dilinde yazacağız. Ve bu formun verilerini PHP uygulamamıza göndereceğiz.
Biz formu yapacağımız dosya adını form.php, maili gönderecek olan PHP uygulamamızın olacağı dosyanın adınıda mail.php olarak ayarladık. Ve bu yüzden formun action parametresine mail.php yazdık.
Formun action parametresine yazdığımız adres, formu göndereceğimiz PHP uygulamasının adresi olmalı. Bu formun görüntüsü şöyle olur:
[attachment=45]
İstediğimiz kadar form elementi ekleyebiliriz, yanlız eklediğimiz elementlerin name parametresine her birine ayrı ve ayırt edici bir değer vermeyi unutmayın. Form elementlerine verdiğimiz bu name parametrelerini PHP uygulamamızda aynı şekilde bu verilere ulaşmak için kullanacağız.
PHP ile formu kontrol etme ve mail gönderme
Şimdi gelelim PHP kodu kısmına. Burada önde bize formdan gönderilen verileri kontrol edeceğiz ve sonrasında gönderilen bilgiler uygun ise maili göndereceğiz.
Kontrol işleminde tüm form değerleri tanımlanmış mı ve boş mu diye bakacağız.
14 satırlık bu kodlarımızın içerisinde 2 koşul kullandık. İlk koşulda formun verileri gönderilmiş mi diye tek tek kontrol ettik, ikinci koşulda ise gönderilen değerleri boş mu diye kontrol ettik. Eğer iki koşulda geçilirse e-posta gönderilmek için hazırdır ve ilk parametrede belirttiğimiz adrese gönderilir. Hepsi bu kadar.
PHP mail göndermede header kullanımı
Mail fonksiyonunu 3 parametre ile en sade halini kullanmış oluruz. Eğer istersek 4. parametreye header dediğimiz özel başlık ifadelerini yerleştirerek, gönderinin adresi, gönderilecek diğer kişiler, gizli gönderim, html şeklinde gönderim gibi bir çok şey yapabiliriz.
Örneğin bir header örneği ile nasıl yollayan adresi belirteceğimizi gösterelim:
Bu kodu çalıştırdığımızda gonderilecek@adres.com adresine gonderen@adres.com adresinden bir mail göndermiş oluruz.
Daha detaylı bir örnek için şu kodu inceleyebilirsin:
PHP’de e-posta göndermek gayet basit ve sadece mail() fonksiyonu ile gerçekleşiyor. En az üç parametre ile çalışan bu fonksiyona posta gönderilecek adresi, mesajın konusunu ve mesajın içeriğini yazarız.
Dördüncü parametresi ile başlıkları kullanarakta birden fazla kullanıcıya göndermeye ya da gönderici e-posta adresini belirtme gibi ifadeler ekleyebilirsin.
Tüm bu mail gönderme işlerine girmeden önce bir mail formu yapmamız gerekiyor. HTML formları hakkında daha fazla bilgi almak için önceki yazımıza göz atabilirsin.
Mail formu hazırlamak
Formumuzu hazırlarken HTML kullanacağız. Yani arayüz ve form elementlerini HTML dilinde yazacağız. Ve bu formun verilerini PHP uygulamamıza göndereceğiz.
Biz formu yapacağımız dosya adını form.php, maili gönderecek olan PHP uygulamamızın olacağı dosyanın adınıda mail.php olarak ayarladık. Ve bu yüzden formun action parametresine mail.php yazdık.
PHP:
<form action="mail.php" method="post">
Adınız: <br/>
<input type="text" name="ad" /><br/>
E-Posta adresiniz: <br/>
<input type="text" name="eposta" /><br/>
Konu: <br/>
<input type="text" name="konu" /><br/>
Mesajınız: <br/>
<textarea name="mesaj"></textarea><br/>
<input type="submit" value="Mesajı Gönder" />
</form>
[attachment=45]
İstediğimiz kadar form elementi ekleyebiliriz, yanlız eklediğimiz elementlerin name parametresine her birine ayrı ve ayırt edici bir değer vermeyi unutmayın. Form elementlerine verdiğimiz bu name parametrelerini PHP uygulamamızda aynı şekilde bu verilere ulaşmak için kullanacağız.
PHP ile formu kontrol etme ve mail gönderme
Şimdi gelelim PHP kodu kısmına. Burada önde bize formdan gönderilen verileri kontrol edeceğiz ve sonrasında gönderilen bilgiler uygun ise maili göndereceğiz.
Kontrol işleminde tüm form değerleri tanımlanmış mı ve boş mu diye bakacağız.
PHP:
if(isset($_POST['ad']) && isset($_POST['eposta']) && isset($_POST['konu']) && isset($_POST['mesaj'])) {
if(empty($_POST['ad']) || empty($_POST['eposta']) || empty($_POST['konu']) || empty($_POST['mesaj'])) {
echo 'Lütfen boş yer bırakmayın!';
} else {
$ad = strip_tags($_POST['ad']);
$eposta = strip_tags($_POST['eposta']);
$konu = strip_tags($_POST['konu']);
$mesaj = strip_tags($_POST['mesaj']);
$icerik = 'Ad: ' . $ad . '<br/>E-Posta: '. $eposta . '<br/>' . $mesaj;
mail('bizim-posta-adresimiz@sitemiz.com', $konu, $icerik);
echo 'Mesajınız Gönderildi! Teşekkürler.';
}
} else {
echo 'Lütfen Formu Kullanın!';
}
14 satırlık bu kodlarımızın içerisinde 2 koşul kullandık. İlk koşulda formun verileri gönderilmiş mi diye tek tek kontrol ettik, ikinci koşulda ise gönderilen değerleri boş mu diye kontrol ettik. Eğer iki koşulda geçilirse e-posta gönderilmek için hazırdır ve ilk parametrede belirttiğimiz adrese gönderilir. Hepsi bu kadar.
PHP mail göndermede header kullanımı
Mail fonksiyonunu 3 parametre ile en sade halini kullanmış oluruz. Eğer istersek 4. parametreye header dediğimiz özel başlık ifadelerini yerleştirerek, gönderinin adresi, gönderilecek diğer kişiler, gizli gönderim, html şeklinde gönderim gibi bir çok şey yapabiliriz.
Örneğin bir header örneği ile nasıl yollayan adresi belirteceğimizi gösterelim:
PHP:
$headers = 'From: gonderen@adres.com' . "rn";
$gonderilecek = 'gonderilecek@adres.com';
$konu = 'E-Postanın konusu';
$mesaj = 'Mesajın içeriği.';
mail($gonderilecek, $konu, $mesaj, $headers);
Daha detaylı bir örnek için şu kodu inceleyebilirsin:
PHP:
$headers = 'MIME-Version: 1.0' . "rn";
$headers .= 'Content-type: text/html; charset=utf-8' . "rn";
$headers .= 'To: Alıcı 1 <alici1@adres.com>, Alıcı 2 <alici2@adres.com>' . "rn";
$headers .= 'From: Yollayan <yollayan@adres.com>' . "rn";
$headers .= 'Reply-To: Yanit <yanit@adres.com>' . "rn";
$headers .= 'X-Mailer: PHP/' . phpversion() . "rn";
$headers .= 'Cc: diger-gonderilecek@adres.com' . "rn";
$headers .= 'Bcc: gizli-gonderilecek@adres.com' . "rn";
$eposta = 'alici1@adresi.com';
$konu = 'HTML kodlu e-posta gönderme';
$mesaj = '<b><i>Kalın ve italik bir yazı gönderiyoruz</i></b>';
mail($eposta, $konu, $mesaj, $headers);