PHP ile Email Gönderme

PHP Web dili içinde email gönderme olayını bir proje geliştirmişseniz mutlaka ihtiyaç duymuşsunuzdur. En basitinden kişisel web sitenizini iletişim formunu dolduran ziyaretçinin email adresinize gelmesini isteyebilirsiniz. E-ticaret sitesi yapıyorsanız, işlem tamamladıktan sonra siparişin tamamlandığını kullanıcıya göndermek isteyebilirsiniz.

Eskiden Linux ortamı üzerinde yazdığımız emailleri göndermek için mail() fonksiyonu kullanılıyordu, fakat sunuculardaki kimlik doğrulama ve sahtecilik problemlerinden dolayı artık kullanamıyoruz, çoğu sunucu da artık desteklemiyor.

Bu arada email gönderme ve alma ile ilgili SMTP nedir, POP3 nedir gibi kavramları bildiğinizi varsayıyorum, bilimiyorsanız bir hata mesajı aldığınızda neden kaynaklandığını tespit etmeniz zor olabilir. 

Gelelim email sınıfının kullanımına önce aşağıda Kaynaklar bölümünde belirtilen Github adresinden ilgili dosyaları indirelim. Ben wamp içinde www klasöründe email isimli bir klasör açarak dosyaları buraya açtım.

Bu örnekte Gmail adresimizi kullanarak email gönderimi yapacağız, siz isterseniz adiniz@sirketadi.com şeklindeki POP3 adresleri de kullanabilirsiniz. Örneğin oguzhantas.com domaini için oluşturduğum info@oguzhantas.com POP3 email adresini kullandım. 

index.php içeriği
 
<!DOCTYPE html>
<html lang="en">
  <head>
<meta charset="utf-8">
 <title>Kullanıcı Girişi</title>
</head>
<body>
<form action="mailgonder.php" method="POST">
<table align="center">
<tr>
<td>Adı Soyadı (*)</td>
<td><input type="text" name="adisoyadi"></td>
</tr>
<tr>
<td>Telefon (*)</td>
<td><input type="text" name="telefon"></td>
</tr>
<tr>
<td>E-posta</td>
<td>
    <input type="text" name="eposta">
</td>
</tr>
<tr>
<td>Mesaj</td>
<td>
      <textarea name="
mesaj" cols="30" rows="10"></textarea>
</td>
</tr>
<tr>
 
<td colspan="2" align="right">
    <input type="submit" value="Gönder"></td>
</tr>
 
</table>
</form>
 
</body>
</html>


mailgonder.php içeriği

<?php
//email gönderimi için gerekli olan dosyaları dahil ediyoruz.
include 'PHPMailer/class.phpmailer.php';
include 'PHPMailer/class.smtp.php';

//İletişim formumuzdan gelen bilgileri alıyoruz.
$adisoyadi=$_POST['adisoyadi'];
$telefon=$_POST['telefon'];
$eposta=$_POST['eposta'];
$mesaj=$_POST['mesaj'];
 
$mail = new PHPMailer(); //ilgili PHPMailer class'ımızdan bir nesne türetiyoruz.
$mail->IsSMTP();
$mail->SMTPAuth = true; 
$mail->Host = 'smtp.gmail.com'; //SMTP için kullanılacak sunucu adresi
$mail->Port = 587; //TLS protokolünün kullanacağı port numarası
$mail->SMTPSecure = 'tls'; //kullanacağımız güvenlik protokolü SSL veya TLS olabilir.
$mail->Username = 'oguzhantas@gmail.com'; //Email gönderecek adres
$mail->Password = '***********'; ////Email gönderecek adresin şifresi
$mail->SetFrom($mail->Username, 'Oğuzhan TAŞ');
$mail->AddAddress('Gidecek email adresi', '
'); //Bu emaili gideceği e-posta adresi
$mail->CharSet = 'UTF-8'; //Karakterlerin düzgün görünmesi için utf-8 ekliyoruz.
$mail->Subject ="Web sitesinin iletişim bölümünden mesaj var"; //emailimizin konusu

//email içeriğimiz
$icerik = "Gönderen:".$adisoyadi.
 " Telefon:".$telefon.
 " E-posta:".$eposta.
 " Mesaj:".$mesaj ;
 
$mail->MsgHTML($icerik);

//Artık emailimizi gönderiyoruz, yukarıdaki bilgilerde bir hata varsa bu satırda hata verecektir.
if($mail->Send()) {
     //E-posta gönderildi
     echo "Email başarıyla gönderildi";
} else {
    // Bir hata oluştu, hata mesajı yazdırıyoruz
    echo $mail->ErrorInfo;
}
 
?>


Mutlu kodlamalar,
Oğuzhan TAŞ
Mart, 2016

KAYNAK

PHP Mailer Class 
https://github.com/PHPMailer/PHPMailer
 
Bookmark and Share