1. Ana Sayfa
  2. PHP

HTML Template Kullanarak PHP Mail Gönderme

HTML Template Kullanarak PHP Mail Gönderme
HTML Template Kullanarak PHP Mail Gönderme
+ - 0

Merhaba, bu yazımda HTML Template Kullanarak PHP Mail Gönderme konusuna değineceğiz. Bunu yaparken de template içerisinde bazı anahtarlar bırakarak bu işlemi daha dinamik hale getireceğiz.

 

HTML Template Kullanarak PHP Mail Gönderme

İlk olarak söylemem gerekiyor ki bu yazıda mail gönderme işlemini paylaşmayacağım. Burada başarılı bir şekilde mail gönderebildiğinizi varsayacağım. Eğer henüz mail gönderme konusunu netleştirmediyseniz bu konu hakkında yazıma buradan ulaşabilirsiniz.

Burada size sadece template html göndermekten değil, bu template’i dinamik olarak düzenlemeyi de göstereceğim. Yani template’imize anahtar kelimeler ekleyeceğiz ve bu şekilde template’imiz dinamik bir hal alacaktır.

Örneğin html template içerisinde {{ NAME }} şeklinde bir anahtar kelime ekleyeceğiz ve bunu php ile bulup mail atacağımızı kişini adı ile değiştireceğiz.

Şimdi ilk olarak html template’i nasıl alacağımıza bakalım. Mail gönderme kodlarımız zaten bir önceki yazıda yer alıyor. Linki yukarıda. Send() fonksiyonundan önce bir yere aşağıdaki kodları ekleyeceğiz.

//... 
//... 
// Önceki yazıdan geliyorsanız bu satırları siliniz.
// $mail->Body    = 'HTML Mesajı. <b>Kalın ifade ve <i>italik</i> ifade </b> ';
// $mail->AltBody = 'HTML olmayan posta istemcileri için düz metin gövdesi';
//... 
//... 
$variables = array();
$variables['adsoyad'] = $user_Name . " " . $user_Surname;
$variables['aktivasyonlinki'] = $ac_Link;
$template = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/MailHTMLs/mail-template.html");
foreach($variables as $key => $value)
{
      $template = str_replace('{{ '.$key.' }}', $value, $template);
}
$mail_body = $template;
$mail->MsgHTML($mail_body);
//... 
//... 
$mail->Send();

Kodlarımız böyle idi. Şimdi de template.html ‘i görelim

<html>

<body>
    <h1>Merhaba, {{ adsoyad }}</h1>
    <h2>Üyeliğinizi aktifleştirmek için lütfen aşağıdaki linke tıklayınız.</h2>
    <p> <a href="{{ aktivasyonlinki }}"> Aktivasyon!</a> </p>
</body>

</html>

mail-template

Kodlarımızı açıklayalım.

Template HTML’i şu kodla alıyoruz.

$template = file_get_contents($_SERVER['DOCUMENT_ROOT'] . "/MailHTMLs/mail-template.html");

Sonra bir değişkene atıyoruz ve string olarak elimize almış oluyoruz.

Sonrasında bir array üretiyoruz. Bu array’ın elemanları template.html içerisinde kullandığımız anahtar kelimelerden oluşması lazım. Yukarıda görebildiğini gibi html dosyamızda aşağıdaki ifade yer alıyor.

{{ adsoyad }}

ve PHP tarafında da array elemanı olarak aşağıdaki ifadeyi görebiliyoruz.

$variables['adsoyad']

Bu şekilde birbirleri aynı olan anahtar kelimeleri kullanacağız. Böylece template dosyalarımızı dinamik hale getirmiş olacağız.

foreach($variables as $key => $value)
{
	$template = str_replace('{{ '.$key.' }}', $value, $template);
}

Burada foreach ile template.html içerisinde, array’a eklediğimiz anahtarları arıyoruz ve yine array’da belirlediğimiz değer ile replace ediyor yani değiştiriyoruz. Burada bu array’ı elle ürettik ancak bu veritabanından gelen veriler de olabilir. Örneğin bir faturayı mail olarak bu yöntem ile html template içerisine bilgileri gömerek gönderebilirsiniz.

 


HTML Template Kullanarak PHP Mail Gönderme yazımda bu kadardı arkadaşlar. Diğer yazılarımızda görüşmek üzere…

Bu dersin kodlarını, önceki dersin kodları arasına ekledim.

PHP Dersleri için başlattığım repoya bağlantıya tıklayarak ulaşabilirsiniz. Tüm PHP yazılarım için tıklayabilirsiniz. Bu dersin kodlarına da bu bağlantıya tıklayarak ulaşabilirsiniz. Burada PHPMailer kodları yer almıyor. Siz onu composer ile kuracaksınız. Yukarıda zaten anlattım.

Kodla kalın. :)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)