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ı
-Öyleyse neden yüreğimi dinlemek zorundayım?
- Çünkü onu susturmayı hiçbir zaman başaramazsın.
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.";
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.
Tüm bu kodlara GitHub üzerinden ulaşabilirsiniz.
Hocam selam benim bir websitem var ve bu sitede teklif alın gibisinden bir ad soyad işte telefon mesaj bölge gibisinden bir tablo yer alıyor bu tablonun php ile bana gelicek bir smmtp işlemide var yani birisini formu doldurduğunda bana mail geliyor fakat bana gelen mail yazıdan ibaret ben buraya kendime gelecek şekilde güzel bir tasarım htmli oluşturdum fakat bunu php ile kendime nasıl göndericeğim
hic
Daha Önceki Yazılar