Cara Kirim Email PHPMailer Dengan Template Menarik

contoh desain template email
Contoh desain template email, Anda bisa memilih sendiri atau membuat desain 


Email merupakan surat elektronik yang bisa digunakan untuk bertukar informasi digital. Email memiliki peranan yang cukup penting khususnya dalam perkembangan dunia digital dimana email sering kali dijadikan salah satu syarat untuk mendaftar kesebuah situs/website dengan tujuan untuk mengkonfirmasi kebenaran dari akun yang dibuat atau didaftarkan, dan masih banyak lagi hal – hal lain yang sering memanfaatkan email dalam rangka mencapai tujuan tertentu.

Mengingat begitu besarnya peranan sebuah email maka dari itu sebuah email perlu didesain sedemikian rupa agar menarik ataupun agar terlihat lebih professional apalagi jika itu digunakan untuk sebuah bisnis atau merupakan bagian dari representasi sebuah lembaga/institusi.

Dalam tutorial ini saya akan memberikan sebuah contoh sederhana bagaimana menambahkan template email dengan desain tertentu menggunakan PHPMailer agar email yang dikirim jadi terlihat lebih menarik

Cara Kirim Email PHPMailer Dengan Template Menarik

#1 Buat Akun di MailTrap

Dalam praktik ini Saya akan menggunakan mailtrap.io sebagai host email yang akan digunakan untuk melakukan percobaan mengirim email, nanti Anda bisa membuat akun email terlebih dahulu melalui mailtrap. Lalu nanti Anda akan mendapatkan beberapa informasi seperti host, username dan password yang bisa digunakan untuk percobaan mengirim email seperti berikut :

pendaftaran ke mail trap


#2 Buat Desain Email di beefree

Silahkan pilih atau buat desain email Anda melalui beefree atau penyedia layanan template email lain sperti Stripo, Anda bisa memilih menggunakan desain yang sudah ada atau membuat desain email Anda sendiri. Jika sudah selesai Anda bisa mengunduh template yang sudah Anda buat, lalu tambahkan root direktori website Anda

#3 Menambahkan Template Email ke PHPMailer

Tahap selanjutnya adalah Anda perlu menambahkan template email yang sudah Anda siapkan sebelumnya, template email tersebut perlu dikirimkan pada saat Anda mengirim sebuah email. Dalam contoh kasus sederhana disini kita akan mengirim sebuah email konfirmasi pendaftaran ataupun informasi login dari akun yang dibuat oleh pengunjung pada situs milik kita

Baca juga : 

  1. Download library PHPMailer terlebih dahulu
  2. Selanjutnya buat sebuah helper / fungsi untuk membantu mengirim email
  3. Karena kita perlu memparsing data yang dikirim ke template html yang sudah dipersiapkan sebelumnya
  4. Buat fungsi dengan nama MailSender.php dengan isi kode seperti berikut
      
        <?php
    /**
     * MailSender
     * Per utilitzar PHPMailer de forma molt més senzilla i 
     * utilitzant plantilles HTML.
     * 
     * Dependencies: 
     *    - PHPMailer
     *
     * @version 0.24 
     * @license MIT 
     * @author Mario M. <gameofender@gmail.com> 
     *  
     */
    class MailSender {
    
    	var $mailer;
    	var $template;
    	var $body = '';
    	var $body_alt = '';
    
    	public function __construct($host, $username, $password, $isHTML = true) {
    		$mail = new PHPMailer\PHPMailer\PHPMailer();
    		$mail->isSMTP();                // Set mailer to use SMTP
    		$mail->Host = $host;  			    // Specify main and backup SMTP servers
    		$mail->SMTPAuth = true;         // Enable SMTP authentication
    		$mail->Username = $username;    // SMTP username
    		$mail->Password = $password;    // SMTP password
    		$mail->isHTML($isHTML);         // Set email format to HTML
    		$mail->CharSet = 'UTF-8';
    		$mail->Port = 2525;
    		$this->mailer = $mail;
    	}
    
    	/**
    	 * Template .html path
    	 * @param String $path 
    	 */
    	public function setTemplateURL($path) {
    		$this->template = $path;
    		$this->body = file_get_contents($this->template);
    	}
    
    	public function setBodyAlt($string) {
    		$this->body_alt = $string;
    	}
    
    	/**
    	 * Remplace mail variables inside template with {{var}} notation.
    	 * @return Array 
    	 */
    	public function compose($args) {
    		if(is_array($args)) {
    			foreach($args as $key => $value){
    				if(!is_array($value)) $this->body = preg_replace('/{{'.$key.'}}/', $value, $this->body);	
    			}
    		}
    	}
    
    	/**
    	 * Send!
    	 * @param  [type] $from    [description]
    	 * @param  [type] $to      [description]
    	 * @param  [type] $subject [description]
    	 * @return [type]          [description]
    	 */
    	function send($from, $to, $subject) {
    		
    		$this->mailer->Subject = $subject;
    		$this->mailer->Body = $this->body;
    
    		if(!empty($this->body_alt)) $this->mailer->AltBody = $this->body_alt; 
    		if(is_array($from)) $this->mailer->setFrom($from[0], $from[1]);
    		else $this->mailer->setFrom($from);
    
    		if(!is_array($to)) $this->mailer->addAddress($to);
    		else {
    			foreach ($to as $email => $name) {
    				$this->mailer->addBcc($email, $name);
    			}
    		}
    
    		return $this->mailer->send();
    	}
    }
    ?>
    
      
      
  5. Terakhir Anda bisa mencoba melakukan uji coba pengiriman email dengan contoh kode seperti berikut
      
      
    <?php
    
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
    require_once 'phpmailer/src/PHPMailer.php';
    require_once 'phpmailer/src/SMTP.php';
    require_once 'phpmailer/src/Exception.php';
    require_once 'MailSender.php';
    
    $err = array();
    if($_SERVER['REQUEST_METHOD']=='POST')
    {
    	if(empty($_POST['email']) && empty($_POST['password']))
    	{
    		array_push($err, "Email atau password tidak boleh kosong");
    	}
    	else
    	{
    		$email = $_POST['email'];
    		$password = $_POST['password'];
    	}
    	if(count($err)==0)
    	{
    		//definisikan host, username dan password dari host email Anda
    		$mailer = new MailSender('smtp.mailtrap.io', 'b8adfcbd8f44f9', '46670fc16cc28e');
    		//set template Anda
    		$mailer->setTemplateURL('email_template.html');
    		//parsing data agar template data mengambil datanya
    		$mailer->compose(array(
    		                'email' => $email,
    		                'password' => $password,
    		                'title'=>'Terima kasih',
    		                'sitename'=>'Root93',
    		));
    
    		$sended = $mailer->send(
    		 array('pengririm@email.com', 'Dari'),
    		        'penerima@email.com',
    		        'Informasi Login Root93'
    		   );
    
    			if($sended)
    			{
    
    			   echo "Email sudah terkirim";
    			}
    			else
    			{
    				echo  $sended->ErrorInfo;
    			}
    	}
    	
    }
    ?>
    
    <!DOCTYPE html>
    <html>
    <head>
    	<title>Kirim Email - PHPMailer - ROOT93</title>
    	<link rel="stylesheet" type="text/css" href="style.css">
    </head>
    <body>
    <div class="container" align="center">
    	<?php 
    		if(count($err)>0)
    			{
    				foreach ($err as $error) {
    					
    					echo $error;
    				}
    			}
    
    	?>
    	<h4>Tutorial Kirim Email PHPMailer Dengan Template Menarik - root93.co.id</h4>
    	<form action="<?php $_SERVER['PHP_SELF']?>" method="POST">
    		<table class="items" width="50%" cellpadding="8" border="0">
    
    			<tbody>
    				<tr>
    					<td>Email</td>
    					<td><input type="text" name="email" placeholder="Masukan email" /></td>
    					<td>Password</td>
    					<td><input type="password" name="password" placeholder="Masukan password" /></td>
    					<td><input type="submit" name="register" value="Register" /></td>
    					
    									
    				</tr>
    				
    
    			</tbody>
    			
    		</table>
    	</form>
    	
    </div>
    </body>
    </html>
    
    
      
      

output di browser
Hasil eksekusi kode pada browser


Catatan :
Pada template email html, Anda bisa mengakses variabel data dengan parameter seperti berikut {{email}} {{password}} dst sesuai nilai yang diparsing didalam parameter array compose


0 Response to "Cara Kirim Email PHPMailer Dengan Template Menarik"

Post a Comment

Komentar yang Anda kirim akan terlebih dahulu di moderasi oleh Admin