Untuk tutorial ini kita akan memanfaatkan librari PHPMailer untuk proses kirim emailnya. Sesuai judul tutorial ini kita akan membuat sebuah form untuk mengirim sebuah email dengan menggunakan bahasa pemograman PHP. Dalam tutorial kali ini juga email disini bukan hanya sekedar mengirim teks, tapi bisa juga mengirim attachment / file melalui email yang kita kirim. Tentunya semua ini dipermudah karena kita menggunakan librari PHPMailer tadi. Dan juga perlu diketahui, tutorial ini bisa dijalankan di komputer local (localhost) ataupun di komputer server / hosting. Sebelum masuk ke langkah-langkah cara membuatnya. Apakah anda sudah mengetahui apa yang dimaskud dengan SMTP? SMTP atau singkatan dari Simple Mail Transfer Protocol adalah sebuah protokol yang berguna untuk mengirimkan sebuah pesan elektronik (email). Maka dari itu untuk mengirim sebuah email kita membutuhkan SMTP sebagai perantara untuk mengirimkan email tersebut. Dalam tutorial ini kita akan menggunakan SMTP Gmail. DEMO STEP 1 – PERSIAPAN
STEP 2 – FORM <html> <head> <title>Kirim Email dengan PHP</title> </head> <body> <div style="padding: 5px 30px;"> <h1>Kirim Email</h1> <hr /> <form method="post" action="send.php" enctype="multipart/form-data"> <div style="margin-bottom: 10px;"> <label>Kepada</label><br /> <input type="email" name="email_penerima" placeholder="Email Penerima" style="margin-top: 5px;width: 400px" /> </div> <div style="margin-bottom: 10px;"> <label>Subjek</label><br /> <input type="text" name="subjek" placeholder="Subjek" style="margin-top: 5px;width: 400px" /> </div> <div style="margin-bottom: 10px;"> <label>Pesan</label><br /> <textarea name="pesan" placeholder="Pesan" rows="8" style="margin-top: 5px;width: 400px"></textarea> </div> <div style="margin-bottom: 20px;"> <label>Attachment</label><br /> <input type="file" name="attachment" style="margin-top: 5px;width: 400px" /> </div> <hr /> <button type="submit">KIRIM EMAIL</button> </form> </div> </body> </html> Mungkin kode diatas tidak perlu saya jelaskan kembali. Baca Juga:
STEP 3 – SEND EMAIL <?php use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; // Include librari phpmailer include('phpmailer/Exception.php'); include('phpmailer/PHPMailer.php'); include('phpmailer/SMTP.php'); $email_pengirim = '[email protected]'; // Isikan dengan email pengirim $nama_pengirim = 'Rizaldi Maulidia Achmad'; // Isikan dengan nama pengirim $email_penerima = $_POST['email_penerima']; // Ambil email penerima dari inputan form $subjek = $_POST['subjek']; // Ambil subjek dari inputan form $pesan = $_POST['pesan']; // Ambil pesan dari inputan form $attachment = $_FILES['attachment']['name']; // Ambil nama file yang di upload $mail = new PHPMailer; $mail->isSMTP(); $mail->Host = 'smtp.gmail.com'; $mail->Username = $email_pengirim; // Email Pengirim $mail->Password = 'password_akun_email_pengirim'; // Isikan dengan Password email pengirim $mail->Port = 465; $mail->SMTPAuth = true; $mail->SMTPSecure = 'ssl'; // $mail->SMTPDebug = 2; // Aktifkan untuk melakukan debugging $mail->setFrom($email_pengirim, $nama_pengirim); $mail->addAddress($email_penerima, ''); $mail->isHTML(true); // Aktifkan jika isi emailnya berupa html // Load file content.php ob_start(); include "content.php"; $content = ob_get_contents(); // Ambil isi file content.php dan masukan ke variabel $content ob_end_clean(); $mail->Subject = $subjek; $mail->Body = $content; $mail->AddEmbeddedImage('image/logo.png', 'logo_mynotescode', 'logo.png'); // Aktifkan jika ingin menampilkan gambar dalam email if(empty($attachment)){ // Jika tanpa attachment $send = $mail->send(); if($send){ // Jika Email berhasil dikirim echo "<h1>Email berhasil dikirim</h1><br /><a href='index.php'>Kembali ke Form</a>"; }else{ // Jika Email gagal dikirim echo "<h1>Email gagal dikirim</h1><br /><a href='index.php'>Kembali ke Form</a>"; // echo '<h1>ERROR<br /><small>Error while sending email: '.$mail->getError().'</small></h1>'; // Aktifkan untuk mengetahui error message } }else{ // Jika dengan attachment $tmp = $_FILES['attachment']['tmp_name']; $size = $_FILES['attachment']['size']; if($size <= 25000000){ // Jika ukuran file <= 25 MB (25.000.000 bytes) $mail->addAttachment($tmp, $attachment); // Add file yang akan di kirim $send = $mail->send(); if($send){ // Jika Email berhasil dikirim echo "<h1>Email berhasil dikirim</h1><br /><a href='index.php'>Kembali ke Form</a>"; }else{ // Jika Email gagal dikirim echo "<h1>Email gagal dikirim</h1><br /><a href='index.php'>Kembali ke Form</a>"; // echo '<h1>ERROR<br /><small>Error while sending email: '.$mail->getError().'</small></h1>'; // Aktifkan untuk mengetahui error message } }else{ // Jika Ukuran file lebih dari 25 MB echo "<h1>Ukuran file attachment maksimal 25 MB</h1><br /><a href='index.php'>Kembali ke Form</a>"; } } ?> $mail->isSMTP(); $mail->Host = ‘smtp.gmail.com’; $mail->Username = $email_pengirim; $mail->Password = ‘password_akun_email_pengirim’; $mail->Port = 465; $mail->setFrom($email_pengirim, $nama_pengirim); $mail->addAddress($email_penerima, ”); $mail->isHTML(true); ob_start(); $content = ob_get_contents(); $mail->Subject = $subjek; $mail->Body = $content; $mail->AddEmbeddedImage(‘image/logo.png’, ‘logo_mynotescode’, ‘logo.png’); $mail->addAttachment($tmp, $attachment); $mail->send() $_FILES[‘attachment‘][‘name’]; $_FILES[‘attachment‘][‘size’]; $_FILES[‘attachment‘][‘tmp_name’]; NOTE : Pada kode diatas, terdapat tulisan attachment. tulisan tersebut harus sama dengan nama input type=”file” yang ada pada form (index.php). if($size <= 25000000){ STEP 4 – CONTENT EMAIL <html> <head> <meta content="text/html; charset=UTF-8" http-equiv="content-type"> </head> <body> <div style="float: left;margin-right: 10px;"> <img src="cid:logo_mynotescode" alt="Logo" style="height: 50px"> </div> <h2 style="margin-bottom: 0;">My Notes Code</h2> https://www.mynotescode.com <div style="clear: both"></div> <hr /> <div style="text-align: justify"> <?php echo $pesan; // Tampilkan isi pesan ?> </div> </body> </html> <img src=”cid:logo_mynotescode” alt=”Logo” style=”height: 50px”> Baca Juga:
STEP 5 – SETTING GOOGLE ACCOUNT
Sekian untuk tutorial kali ini. Jika ada hal yang ingin ditanyakan, langsung tanyakan saja lewat kolom komentar dibawah ini. Jangan lupa LIKE dan SHARE nya hehe, Terimakasih. |