Cara menggunakan smtp email php

Kelasprogrammer.com – Halo sahabat programmer kali ini saya akan bagikan cara mengirim email dengan PHP. Fitur ini memang diperlukan untuk beberapa kasus. Misalnya untuk kalian yang mengembangkan website e-commerce, dimana kita perlu untuk mengirim invoice kepada pelanggan,maka tentu perlu ada fitur tersebut didalam aplikasi web kita.

Proses kirim email kita gunakan SMTP (Simple Mail Standart Protocol) dimana email yang kita kirim akan masuk ke email server setelah itu kemudian dikirimkan ke server email penerima. Untuk mengintegrasikannya kedalam bahasa pemrograman PHP, kita memerlukan library PHPMailer, PHPMailer adalah library yang dapat kita gunakan untuk mengirim email dari program PHP. Library ini juga support layanan SMTP sehingga sangat cocok bagi kita developer web pemula.

Ikuti langkah-langkah berikut ini untuk cara mengirim email dengan PHP di localhost :

Setting Email

Buka link berikut : https://myaccount.google.com/lesssecureapps

Link tersebut akan mengarahkan anda, ke akun gmail yang akan digunakan sebagai SMTP email pengirim. Yang perlu dilakukan adalah Mengaktifkan izin aplikasinya. Gmail mensetting default nonaktif sebagai upaya pengamanan penggunaan SMTP mereka.

Cara menggunakan smtp email php

Download PHPMailer

Silahkan kalian download dulu librarynya pada link ini

Setelah mendownload extract hasil download tersebut kedalam folder project php kalian.

Buat file PHP

Selanjutnya kita buat sebuah file PHP dengan nama index.php. Copy kan sintak dibawah ini kedalam file tersebut.

<!DOCTYPE html>
<html>
<head>
    <!-- Load file CSS Bootstrap offline -->
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
</head>
<body>
<div class="container">
    <h2>Kirim Email dengan PHP</h2>
    <?php
    if (isset($_POST['kirim'])) {

        require 'PHPMailer/PHPMailerAutoload.php';
        $email_pengirim = "";
        $isi=$_POST['isi'];
        $subjek=$_POST['subjek'];
        $email_tujuan=$_POST['email_tujuan'];

        $mail = new PHPMailer();

        $mail->IsHTML(true);    // set email format to HTML
        $mail->IsSMTP();   // we are going to use SMTP
        $mail->SMTPAuth   = true; // enabled SMTP authentication
        $mail->SMTPSecure = "ssl";  // prefix for secure protocol to connect to the server
        $mail->Host       = "smtp.gmail.com";      // setting GMail as our SMTP server
        $mail->Port       = 465;                   // SMTP port to connect to GMail
        $mail->Username   = $email_pengirim;  // alamat email kamu
        $mail->Password   = "1234567890";            // password GMail
        $mail->SetFrom($email_pengirim, 'noreply');  //Siapa yg mengirim email
        $mail->Subject    = $subjek;
        $mail->Body       = $isi;
        $mail->AddAddress($email_tujuan);

        if(!$mail->Send()) {
            echo "Eror: ".$mail->ErrorInfo;
            exit;
        }else {
            echo "<div class='alert alert-success'><strong>Berhasil!</strong> Email telah berhasil dikirim.</div>";
        }
    }
    ?>
<br>
    <form action="<?php echo $_SERVER["PHP_SELF"];?>" method="post">
        <div class="form-group">
            <input class="form-control" name="email_tujuan" placeholder="Email Tujuan:">
        </div>
        <div class="form-group">
            <input class="form-control" name="subjek" placeholder="Subjek:">
        </div>
        <div class="form-group">
            <textarea id="compose-textarea" name="isi" class="form-control" style="height: 300px" placeholder="Isi Email"></textarea>
        </div>

        <button type="submit" name="kirim" class="btn btn-primary">Kirim</button>

    </form>
</div>
</body>
</html>

Penjelasan:

Program diatas saya membuat form dengan beberapa inputan, seperti email tujuan, subjek dan isi email. Nantinya nilai dari inputan-inputan tersebut akan digunakan sebagai nilai pada email tujuan, subjek dan isi.

Disini saya langsung membuat fungsi kirim emailnya dalam satu file ya. Bila kalian tidak ingin menggabungkan fungsi kirim email, bisa dipisahkan di file yang berbeda dengan men-cut sub program didalam percabangan if nya.

Selain itu program ini saya menggunakan bootstrap, agar tampilan form nya lebih menarik. Kalian bisa pelajari cara menggunakan bootstrap

if (isset($_POST['kirim'])) {
......
}

Sintak diatas berfungsi untuk mengecek apakah ada nilai yang dikirim dengan method POST dengan nama kirim ? Jika kondisi bernilai True maka akan dijalnkan blok program yang ada didalamnya.

require 'PHPMailer/PHPMailerAutoload.php';

Sintak diatas untuk meload PHPMailer nya agar dapat kita gunakan.

 $email_pengirim = "";

Sintak diatas untuk inisialisasi variabel, pada variabel $email_pengirim nilai emailnya merupakan email yang kita gunakan sebagai email pengirim. Ganti nilainya dengan email kalian.

$isi=$_POST['isi'];
$subjek=$_POST['subjek'];
$email_tujuan=$_POST['email_tujuan'];

Sintak diatas untuk menerima nilai kiriman form kemudian di simpan pada variabel $isi, $subjek, dan $email_tujuan.

$mail = new PHPMailer();

Sintak diatas untuk inisialisasi objek PHPMailernya.

$mail->IsHTML(true);    // set email format to HTML
$mail->IsSMTP();   // we are going to use SMTP
$mail->SMTPAuth   = true; // enabled SMTP authentication
$mail->SMTPSecure = "ssl"; // prefix for secure protocol to connect to the server
$mail->Host       = "smtp.gmail.com"; / setting GMail as our SMTP server
$mail->Port       = 465;   // SMTP port to connect to GMail
$mail->Username   = $email_pengirim;  // alamat email kamu
$mail->Password   = "1234567890";            // password GMail
$mail->SetFrom($email_pengirim, 'noreply');  //Siapa yg mengirim email
$mail->Subject    = $subjek;
$mail->Body       = $isi;
$mail->AddAddress($email_tujuan);

Pada bagian sintak diatas untuk pengaturan PHPMailer, format email yang dikirim menggunakan format HTML. Sehingga kita bisa menyisipkan tag-tag html didalamnya.

Baca juga : Cara membuat laporan excel dengan PHP

Jenis protocol yang kita gunakan menggunakan SMPT dengan hostnya smtp.gmail.com. dan post SSL 465. Pada bagian $mail->Password di isi nilai nya dengan password email kalian.

if(!$mail->Send()) {
   echo "Eror: ".$mail->ErrorInfo;
   exit;
}else {
   echo "<div class='alert alert-success'><strong>Berhasil!</strong> Email telah berhasil dikirim.</div>";
 }

Fungsi IF diatas untuk mengecek apakah email berhasil terkirim? jika ya maka menampilkan pemberitahuan berhasil

Sekarang kita uji coba langsung, buka aplikasinya melalui URL berikut:

http://localhost/kirim-email-php/

Isi formnya, dengan isian yang sesuai, ketika di klik tombol kirim maka fungsi kirim email akan dijalankan.

Cara menggunakan smtp email php

Kemudian coba di cek di email, sudah masuk di inboxnya.

Cara menggunakan smtp email php

Kesimpulan

Didalam pemrograman PHP, kita dapat membuat fitur kirim email dengan menggunakan library PHPMailer. Fitur tersebut dapat dengan mudah dibuat melalui port SMTP Gmail. Kita dapat menjalankan melalui web server localhost dan terkoneksi dengan jaringan internet. Silahkan kalian bisa bertanya bila ada pertanyaan lewat kolom komentar dibawah.