Cara menggunakan php email extension

Jika anda mengistall PHP melalui XAMPP, maka mysql extension telah aktif secara default dan anda tidak perlu melakukan apa-apa. Namun jika anda menginstall PHP secara terpisah, kita harus mengaktifkan setingan PHP agar mendukung MySQL. Dalam tutorial kali ini kita akan membahas tentang pengertian extension dalam PHP dan cara setting mysql extension.


Pengertian Extension dalam PHP

Sampai dengan tutorial kali ini, beberapa kali saya menggunakan istilah extension. Namun apakah yang dimaksud dengan extension ini?

Extension di dalam PHP adalah istilah yang merujuk kepada kumpulan fungsi program tambahan yang membuat PHP dapat mendukung berbagai fitur baru.

PHP terdiri dari aplikasi inti (PHP core), dan fungsi tambahan (extension). Dalam aplikasi inti PHP, PHP tidak menyediakan fungsi yang menangani database MySQL. Penanganan untuk fungsi database ini dipisahkan menjadi fungsi tambahan (extension). Selain database, extension dalam PHP menyediakan berbagai fungsi lainnya untuk keperluan yang lebih khusus, seperti pembuatan gambar, kriptografi, penanganan email, pembuatan PDF, dan lain-lain.


Cara Setting mysql extension dengan php.ini

Untuk mengaktifkan extension dalam PHP, bisa dilakukan dari file setingan php.ini (cara membuka file php.ini telah kita pelajari pada tutorial Cara Mengubah File Konfigurasi PHP (php.ini)), lalu cari extension=php_mysql.dll dan extension=php_mysqli.dll, pastikan menghapus tanda titik koma di awal kedua extension ini untuk mengaktifkannya.

Cara menggunakan php email extension

Masih pada file php.ini, pada bagian ini anda dapat melihat berbagai extension yang terdapat di dalam PHP, bahkan sebahagian besar tidak aktif secara default.

File settingan php.ini menginstruksikan kepada PHP untuk mengaktifkan suatu extension, namun file extension itu sendiri juga harus ada di dalam PHP. Anda bisa membuka folder xampp\php\ext untuk melihat file-file extension yang digunakan untuk menambah fitur PHP.

Cara menggunakan php email extension

Untuk memeriksa apakah setingan extension=php_mysql.dll sudah aktif, kita bisa menggunakan fungsi phpinfo(). Anda bisa menjalankan fungsi phpinfo() didalam sebuah file php, atau bisa juga dengan men-klik menu phpinfo() dari halaman localhost dari XAMPP. Dalam halaman phpinfo(), carilah bagian mysql seperti tampilan berikut:

Cara menggunakan php email extension

Jika anda menemukan bagian mysql, berarti extension mysql telah aktif dan kita bisa mulaI membuat program untuk mengakses database melalui PHP.


Dalam tutorial belajar PHP MySQL berikutnya, kita akan mulai membuat kode program PHP agar bisa terhubung dengan MySQL dalam tutorial Cara Membuat Koneksi PHP-MySQL dengan fungsi mysql_connect.

Halo, saya novri. Pada blog ini saya akan membahas seputar panduan dan tips hosting, email, domain, vps, server, website, linux dan cms. Jangan lupa untuk shared dan bookmark novri.web.id agar lebih mudah mendapatkan informasi tutorial maupun tips dari kami.

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
Sebelum masuk ke tutorialnya. Mungkin ada yang mau lihat demonya terlebih dahulu. Silahkan klik link berikut untuk melihat demonya : Lihat Demo.


STEP 1 – PERSIAPAN
Berikut ini adalah hal-hal yang harus dipersiapkan :

  1. Buat sebuah folder baru dengan nama email_php, lalu simpan pada folder xampp/htdocs/.
  2. Buat folder dengan nama tmp, lalu simpan pada folder xampp/htdocs/email_php/.
  3. Buat folder dengan nama image,lalu simpan pada folder xampp/htdocs/email_php/.
  4. Copy 1 file gambar png (bebas gambar apa saja) lalu rename dengan nama logo.png, kemudian simpan pada folder xampp/htdocs/email_php/image/.
  5. Download librari PHPMailer, klik link berikut : Download.
  6. Ekstrak file phpmailer.7z yang telah di download tadi, kemudian copy and paste folder phpmailer ke dalam folder xampp/htdocs/email_php/.

STEP 2 – FORM
Langkah selanjutnya kita akan membuat form untuk kirim emailnya. Silahkan buat sebuah file dengan nama index.php, lalu simpan pada folder xampp/htdocs/email_php/. Berikut ini tampilan dan kodenya :

Cara menggunakan php email extension

<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:

  • Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Membuat Export Excel Plus Filter Tanggal dengan PhpSpreadsheet
  • Cara Membuat Crop Gambar Plus Upload dengan PHP


STEP 3 – SEND EMAIL
Langkah selanjutnya kita akan membuat form untuk kirim emailnya. Silahkan buat sebuah file dengan nama send.php, lalu simpan pada folder xampp/htdocs/email_php/. Berikut ini kodenya :

<?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();
Untuk menset bahwa proses pengiriman email menggunakan SMTP.

$mail->Host = ‘smtp.gmail.com’;
Disini kita menset SMTP nya dengan SMTP GMail (smtp.gmail.com) seperti yang saya katakan sebelumnya.

$mail->Username = $email_pengirim;
Ini harus diisi dengan email si pengirim (email kita sebagai pengirim), artinya kita akan mengirim email tersebut dengan menggunakan email mana.

$mail->Password = ‘password_akun_email_pengirim’;
Isi dengan password email pengirim. Sebagai catatan, apabila Anda disini menggunakan akun google sebagai email pengirimnya, dan jika Two Step Verification (Verikasi 2 langkah) pada akun google Anda diaktifkan, maka Silahkan Ikuti STEP Terakhir (STEP 5) pada tutorial ini untuk mengetahui password yang harus diisikan.

$mail->Port = 465;
Kita isi dengan Port Default dr SMTP (Port SSL/TLS) yakni 465.

$mail->setFrom($email_pengirim, $nama_pengirim);
Parameter pertama kita isi dengan email pengirim, dan parameter kedua kita isi dengan nama pengirimnya siapa (bebas sesuai keinginan).

$mail->addAddress($email_penerima, );
Parameter pertama kita isikan dengan email penerima / tujuan, dan parameter kedua itu opsional, isinya adalah nama si penerimanya siapa.

$mail->isHTML(true);
Jika isi emailnya adalah html, maka harus di set true.

ob_start();
include “content.php”;

$content = ob_get_contents();
ob_end_clean();
Kode tersebut berfungsi untuk mengambil tampilan isi email dan memasukkannya ke dalam variabel $content.

$mail->Subject = $subjek;
Isi dengan subjek emailnya.

$mail->Body = $content;
Isi dengan isi emailnya baik berupa html ataupun teks biasa.

$mail->AddEmbeddedImage(‘image/logo.png’, ‘logo_mynotescode’, ‘logo.png’);
Kode untuk berguna untuk menyisipkan gambar ke dalam isi pesan yang kita kirim. Parameter pertama isi dengan path tempat gambar disimpan. Parameter kedua diisi dengan nama variabel (bebas, hanya huruf, angka, underscore) yang nantinya akan digunakan sebagai atiribut src pada tag img. Parameter ketiga diisi dengan nama file gambarnya.

$mail->addAttachment($tmp, $attachment);
Kode ini berfungsi untuk menambahkan attachment pada email yang akan dikirim. Parameter pertama diisi dengan path tempat file disimpan, maka dari itu kita isi dengan tmp_name dari file yang di kirim dari form. Parameter kedua diisi dengan nama file attachment nya, nama file ini bisa kita set sendiri atau disamakan dengan nama file aslinya (sama seperti tutorial ini saya set sama seperti nama asli file nya ketika di pilih pada form).

$mail->send()
Kode ini untuk memulai proses kirim email.

$_FILES[‘attachment‘][‘name’];
Untuk mengambil nama file yang diupload.

$_FILES[‘attachment‘][‘size’]; 
Untuk mengambil ukuran file yang diupload dalam bytes.

$_FILES[‘attachment‘][‘tmp_name’];
Untuk mengambil url/path folder tempat penyimpanan sementara file yang diupload, sebelum dipindahkan ke folder tmp.

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){
Untuk mengecek apakah fileyang diupload ukurannya kurang dari sama dengan 25 MB. Pada kode tersebut saya menetapkan <= 25000000, 25000000 itu sama dengan 25000000 bytes = 25 MB.


STEP 4 – CONTENT EMAIL
Pada tahap ini kita akan membuat tampilan dan isi dari email yang akan dikirim nantinya. Silahkan buat sebuah file dengan nama content.php, lalu simpan pada folder xampp/htdocs/email_php/. Berikut ini tampilan (email) dan kodenya :

Cara menggunakan php email extension

<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”>
Pada kode ini, seperti yang saya jelaskan pada step sebelumnya. Kita isi atribut src dengan nama variabel yang kita tentukan pada file send.php ($mail->AddEmbeddedImage(‘image/logo.png’, ‘logo_mynotescode‘, ‘logo.png’);) dengan diberi awalan “cid:nama_variabel”.


Baca Juga:

  • Tutorial Codeigniter Bahasa Indonesia Lengkap Plus Source Code
  • Tutorial PHP Bahasa Indonesia Lengkap Plus Source Code
  • Cara Membuat atau Mengubah Password dengan MD5 di PHPMyAdmin
  • Cara Mudah Membuat Format Uang Rupiah dengan PHP


STEP 5 – SETTING GOOGLE ACCOUNT
Tahap ini adalah tahap khusus bagi Anda yang menggunakan Akun Google sebagai pengirim dan juga khusus untuk yang Fitur Two Factor Verification (Verifikasi 2 Langkah) pada akun googlenya diaktifkan. Karena jika Two Factor Verification diaktifkan pada akun googlenya, maka isi dari $mail->Password (pada file send.php) bukan lagi password akun googlenya, tetapi menggunakan password khusus yang bisa kita dapatkan dari halman pengaturan di akun googlenya. Silahkan ikuti langkah-langkah dibawah ini atau kunjungi link (https://support.google.com/mail/?p=InvalidSecondFactor) :

  1. Setelah masuk ke halaman Akun Google (https://myaccount.google.com/).
  2. Klik menu Security.
    Cara menggunakan php email extension
  3. Pada bagian Signing to Google, Klik App Passwords.
    Cara menggunakan php email extension
  4. Setelah mengklik App Passwords Anda akan diminta untuk memasukan Password Akun Google Anda untuk verifikasi.
    Cara menggunakan php email extension
  5. Setelah itu Anda akan masuk ke halaman App Passwords. Disini Anda tinggal klik Select App.
    Cara menggunakan php email extension
  6. Lalu klik Other (Custom Name).
    Cara menggunakan php email extension
  7. Isikan deskripsi atau isikan saja dengan nama Website Anda.
    Cara menggunakan php email extension
  8. Klik tombol GENERATE.
    Cara menggunakan php email extension
  9. Copy random teks yang ada dalam kotak warna kuning. Random teks itu yang akan kita gunakan sebagai Password untuk akses ke akun email googlenya ($mail->Password).
    Cara menggunakan php email extension

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.