Php ile Mail Göndermek – PhpMailler

Merhabalar bu makalemizde sizlere Php ile nasıl Mail gönderilir bunu anlatmaya çalışacağım. Php kendi içerisinde e-posta göndermek için mail() fonksiyonu barındırır. Yanlız bu fonksiyon ile gönderdiğimiz E-posta’lar daha çok spam’a takılmaktadır.

E-posta göndermek sunucu üzerinde yoğunluğa neden olmaktadır. Ayrıca gönderilen E-posta’nın ulaşıp ulaşmadığının da garantisi yoktur.

Bu gibi problemleri en aza düşürmek için PhpMailler gibi kullanımı kolay olan bir kütüphane kullanmaktır. PhpMailler SMTP sunucu yapılandırmasına izin vererek sunucunuz üzerinde ki yükü almaktadır ve hemen hemen gönderilen tüm mail ler gönderildiği adrese ulaşmaktadır.

PhpMailler Kütüphanesini İndirelim

PhpMailler kütüphanesini kullanmamız için öncelikle indirmemiz gerekmektedir. PhpMailler kütüphanesini buraya tıklayarak indirebilirsiniz.

Mail Formunu Oluşturalım

PhpMailler kütüphanemizi indirdikten sonra yapmamız gereken şey mail formunu oluşturmaktır. Bu formumuz dan 3 adet veri alıp fonksiyonumuza göndereceğiz. Aşğıdaki kodu inceleyelim.

<form method="post" action="gonder.php">
  E-posta: <input name="eposta" type="text" />
  Konu: <input name="konu" type="text" />
  Mesaj: <textarea name="mesaj" rows="10" cols="30"></textarea>
  <input type="submit" value="Gönder" />
</form>

Yukarıda yer alan örnek formumuzdan kullanıcıdan 3 adet veri almaktayız. Bu verilerimiz E-posta maili göndereceğimiz adres, Konu mailin konusu ve son olarak Mesaj mailin içeriği şeklinde. Kullanıcıdan bu verileri elde ettikten sonra gonder.php adresine post metodu ile gönderiyoruz.

gonder.php Dosyasının Oluşturulması

Şimdi ise gonder.php şeklinde dosya oluşturuyoruz. Kullanıcılan aldığımız verileri bu dosya içerisinde işleyeceğiz. Aşağıdaki kodumuzu inceleyelim.

<?php
 
$eposta = htmlspecialchars(trim($_POST['eposta']));
$konu = htmlspecialchars(trim($_POST['konu']));
$mesaj = htmlspecialchars(trim($_POST['mesaj']));
 
require("class.PHPMailer.php");
 
$mail = new PHPMailer();
 
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = ''; // gönderen sunucu
$mail->Port = ''; // gönderen port
$mail->SMTPSecure = 'ssl'; // gönderen SSL
$mail->Username = ''; // gönderen kullanıcı adı
$mail->Password = ''; // gönderen şifre
$mail->SetFrom($mail->Username, 'Hüseyin YAMAN ');
$mail->AddAddress($eposta, $eposta);
 
$mail->IsHTML(true);
$mail->CharSet = 'UTF-8';
$mail->Subject = $konu;
$content = $mesaj;
$mail->MsgHTML($content);
 
if(!$mail->Send())
{
   echo "Mail gönderilemedi.";
   echo "Mailer Error: " . $mail->ErrorInfo;
   exit;
}
 
echo "Mesaj başarıyla gönderildi.";
?>

gonder.php dosyamızda ilk olarak formumuz dan gelen verileri htmlspecialchars() fonksiyonu yardımı ile Html öğelerinden temizleyerek değişkenlerimize atadık.

Hemen ardından PhpMailler Class’ımızı dosyamıza dahil edip $mail = new PHPMailer(); komutu ile Class’ımızı tanımladık.

Son olarak ise gönderici verilerini (Gönderen sunucu adresi, Gönderen SSl, Gönderen Port, Gönderen kullanıcı adı ve son olarak Gönderen Şifre ) ekledikten sonra $mail->Send() metodumuz ile mail gönderme işlemi tamamladık.

Eğer mail gönderiminde bir problem yok ise ekranımıza başarı mesajını yazacaktır. Ama Mail gönderiminde bir hata oluşması durumunda kodumuz if bloğuna girecek ve hata mesajını bize dönecektir.

E-Posta’ya Dosya Eklemek

Göndereceğimiz E-posta’ya dosya eklemek isteyebiliriz. Bunun için kütüphanemiz içerisinde yer alan AddAttachment() fonksiyonunu kullanıp dosya yolunu belirtmek yeterli olacaktır. Aşağıdaki örnek kodumuzu inceleyelim.

$mail->AddAttachment('dosya.rar');

PhpMailler ile Çoklu E-Posta Gönderimi

PhpMailler ile çoklu mail gönderimi mümkündür. Bunun için AddAddress() fonksiyonunu kullanmamız yeterli olacaktır. Ayrıca kütüphanemiz bizlere CC BCC gibi özelliklerde sunmaktadır. Şimdi Aşağıdaki örnek kodumuzu inceleyelim.

$mail->AddAddress('E-POSTA_ADRESİ', 'Ad Soyad');
$mail->AddBCC('E-POSTA_ADRESİ', 'Ad Soyad');
$mail->AddCC('E-POSTA_ADRESİ', 'Ad Soyad');

AddAddress() fonksiyonumuz ile birden fazla E-Posta alıcısı eklemek için kullanılır. AddCC() fonksiyonu ile E-Posta gönderirken bir kopyasını belirtilen adrese gönderilmesi yaramaktadır ve E-Posta alıcısı bu adresi görür. AddBcc() fonksiyonumuz ise yine aynı şekilde E-Posta gönderilirken bir kopyasını belirtilen adrese gönderilmesini sağlamaktadır. Yanlız E-Posta alıcısı bu adresi göremez.

İşte bu kadar dostlar, merak ettiğiniz başka konular var ise aşağıda yorum olarak bırakabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Shares