Kadir Kasim | Freelance Code Developer

kadir kasim


Yıldız Teknik Üniversitesi Mezunu

Matematik Mühendisi

Yazılımcı

California - Kütahya - İstanbul - Maryland güzargahında 29 yıllık göçebe bir yaşam

Kız labrador babası

Kitapsever keyif insanı

İnsan, öleceğini bile bile nasıl yaşar?
Ya çıldırır ya da öleceğini unutur…

Nazım Hikmet

Artık hemen hemen hiç bir web sayfası bize kuru kuru bir email göndermiyor. Hepsi özenle hazırlanmış template kullanıyor. Bu aslında hepimiz için güzel oldu çünkü mail okumak eskiden sıkıcı birşeydi şimdi ise resimler animasyonlar ve görsellikle desteklenmiş içeriklere bakıyoruz. Peki bunlar nasıl hazırlanıyor, kişiye özel içerikler nasıl oluşturuluyor diyorsanız hemen email şablonunun nasıl hazırlandığını inceleyelim.

İlk olarak bunlar birer HTML içerik ve CSS ile görünümleri düzenleniyor. Bunun sebebi Email sunucuları HTML içerikleri kolayca okuyabiliyor.

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> *{margin: 0;padding: 0;} .wrap{ font-family: 'Open Sans',sans-serif; background: url('http://kadirkasim.com/archive/images/mail-bg.jpeg'); background-size: cover; background-position: center; padding: 50px; } .inner{ text-align: center; line-height: 21px; color: #333; letter-spacing: 1.4px; } .top{ font-weight: bold; font-size: 29px; font-style: italic; color: #111; } .middle p{ line-height: 21px; font-size: 14px; padding: 30px; } .middle a{ width: 120px; margin: 0px auto; display: block; outline: none; text-decoration: none; line-height: 35px; transition: all 0.2s ease-in; color:#fff; background: #0a8ae0; } .middle a:hover{ background: #007cc0; } .bottom{ padding: 30px; letter-spacing: 1.1px; font-size: 11px; } .bottom a{ color: #007cc0; } </style> </head> <body> <div class="wrap"> <div class="inner"> <div class="top"> Merhaba, username </div> <div class="middle"> <p> Yazılarımdan haberdar olmak istediğin için çok teşekkür ederim. Umarım keyifli zaman geçireceğiz ve birbirimizden bir çok şey öğreneceğiz. </p> <a href="http://kadirkasim.com/"> Siteye Dön </a> </div> <div class="bottom"> Eğer <a href=""> kadirkasim.com'a </a> bir abonelik işlemi gerçekleştirmediyseniz veya abonelikten çıkmak isterseniz <a href="http://kadirkasim.com/?id=userID"> tıklayın. </a> </div> </div> </div> </body> </html>

Eğer template içeriğini kişiye özel düzenlemek istersek bu nokta yapmamız gereken tek şey değişecek alanları belli kelimelerle doldurmak. Örneğin yukarıdaki kod da 'username' kısmı gönderilecek kişinin adı ile değiştirilicek. Tabi 'userID' de kullanıcı için tanımlanmış olan id ile..

Değişim için PHP de str_replace fonksiyonu bizim için yeterli. Dosyanın içeriğini de file_get_contents fonksiyonu ile alabildiğime göre şöyle bir kod işimi görecektir.

use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require 'PHPMailer/src/Exception.php'; require 'PHPMailer/src/PHPMailer.php'; require 'PHPMailer/src/SMTP.php'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->SMTPKeepAlive = true; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; //ssl $mail->Port = 587; //25 , 465 , 587 $mail->Host = "smtp.gmail.com"; $mail->Username = "kadir.ytube@gmail.com"; $mail->Password = "Asd12345"; $mail->setFrom("kadir.ytube@gmail.com"); $mail->addAddress("kdrksm@gmail.com"); $body = file_get_contents('./mail-template.html'); $gelen = ["username","userID"]; $giden = ["Mehmet",8]; $body = str_replace($gelen,$giden,$body); $mail->isHTML(true); $mail->Subject = "Mail Template Ornegi"; $mail->Body = $body; if ($mail->send()) echo "Mail gonderimi basarili."; else echo "Malesef olmadi.";

Mail Template Kullanımı

Eğer bu mail templateni birden fazla kullanıcı için kullacak ve toplu mail göndereceksem :

use PHPMailerPHPMailerPHPMailer; use PHPMailerPHPMailerException; require 'PHPMailer/src/Exception.php'; require 'PHPMailer/src/PHPMailer.php'; require 'PHPMailer/src/SMTP.php'; $mail = new PHPMailer(); $mail->isSMTP(); $mail->SMTPKeepAlive = true; $mail->SMTPAuth = true; $mail->SMTPSecure = 'tls'; //ssl $mail->Port = 587; //25 , 465 , 587 $mail->Host = "smtp.gmail.com"; $mail->Username = "kadir.ytube@gmail.com"; $mail->Password = "Asd12345"; $mail->setFrom("kadir.ytube@gmail.com"); $data = [ [ "id" => 1, "name" => "Kadir", "email" => "kdrksm@gmail.com" ], [ "id" => 2, "name" => "ahmet", "email" => "benkadirkasim.com" ], [ "id" => 4, "name" => "mehmet", "email" => "me@kadirkasim.com" ] ]; foreach ($data as $d){ $mail->addAddress($d["email"]); $body = file_get_contents('./mail-template.html'); $gelen = ["username","userID"]; $giden = [$d["name"],$d["id"]]; $body = str_replace($gelen,$giden,$body); $mail->isHTML(true); $mail->Subject = "Hosgeldin ".$d["name"]; $mail->Body = $body; if ($mail->send()) echo "Mail gonderimi basarili."; else echo "Malesef olmadi. HATA : ".$mail->ErrorInfo; $mail->clearAddresses(); $mail->clearAttachments(); }

Daha detaylı anlatım için videoları izleyebilirsiniz.

Toplu Mail Gönderimi

Tüm bu kodlara GitHub üzerinden ulaşabilirsiniz.

Mail Template Kullanımı ve Toplu Mail Gönderimi üzerine yorumlar

hic

Tartısmaya Katılmak İster Misiniz ?

Eposta adresiniz paylasılmayacaktır..

Daha Önceki Yazılar