Please enable JavaScript!
Bitte aktiviere JavaScript!
S'il vous plaît activer JavaScript!
Por favor,activa el JavaScript!
antiblock.org

 |  |  | 
Anda ingin membuat website?
Untuk Anda yang sedang mencari orang untuk jasa pembuatan website, Saya akan bantu buatkan aplikasi sesuai kebutuhan Anda. Segera hubungi : mail@rizaldimaulidia.com. Selengkapnya tentang profil saya klik www.rizaldimaulidia.com.

PHP Tips and Trick

Cara Mudah Mengirim Email dari Localhost / Server dengan PHP

img-responsive

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 :

Form - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP

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



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_pengirim@gmail.com'; // 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 :

Content Email - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP

<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”.



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.
    Setting App Password (Step 1) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  3. Pada bagian Signing to Google, Klik App Passwords.
    Setting App Password (Step 2) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  4. Setelah mengklik App Passwords Anda akan diminta untuk memasukan Password Akun Google Anda untuk verifikasi.
    Setting App Password (Step 3) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  5. Setelah itu Anda akan masuk ke halaman App Passwords. Disini Anda tinggal klik Select App.
    Setting App Password (Step 4) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  6. Lalu klik Other (Custom Name).
    Setting App Password (Step 5) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  7. Isikan deskripsi atau isikan saja dengan nama Website Anda.
    Setting App Password (Step 6) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  8. Klik tombol GENERATE.
    Setting App Password (Step 7) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP
  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).
    Setting App Password (Step 8) - Cara Mudah Mengirim Email dari Localhost / Server dengan PHP

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.

Happy Coding ^_^


SOURCE CODE
Untuk mengunduh source code nya, klik link berikut ini : Download.


SUMBER & REFERENSI
Dokumentasi PHPMailer : https://github.com/PHPMailer/PHPMailer
Cara mengirim email di localhost / server dengan php, tutorial lengkap kirim email di localhost / server  dengan php, tutorial step by step kirim email di localhost / server  dengan php dan PHP Mailer

Mengirim Email

(Total : 23,721 viewers, 1 viewers today)
mengirim-email-localhost-atau-server-php

ABOUT THE AUTHOR

Interested in android programming, long time focused on web development. Visit My Profile Site at www.rizaldimaulidia.com

POST YOUR COMMENTS TO Rizaldi Maulidia Achmad (Cancel)

Your email address will not be published. Required fields are marked *

Name *

Email *

Website

73 Comments

  1. Mas..saM

    Mulai beberapa hari yang lalu pilihan App Passwords sudah tidak ada lagi, dan option Akses Aplikasi Kurang Aman juga di nonaktifkan oleh Google sehingga tidak bisa lagi kirim Email dari Localhost. Apakah ada solusi untuk mengatasi masalah tersebut gan??

    • Setau saya, menu App Password akan muncul kalau akun google nya diaktifkan Two Factor Verification nya. Kalau belum diaktifkan, ga akan muncul. Iyaa memang kurang aman, saran saya gunakan yang pakai App Password. Silahkan aktifkan dulu Two Factor Verification nya.

  2. alfannurchamid

    bang aku pake kode ini di hosting online ,tapi kok nggak jadi ya ? padahal di local aman

    2022-05-06 14:13:36 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP b5-20020adfe645000000b0020c7fb81b0fsm3713258wrn.46 – gsmtp
    2022-05-06 14:13:36 CLIENT -> SERVER: EHLO kpalfan.epizy.com
    2022-05-06 14:13:36 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [185.27.134.185]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
    2022-05-06 14:13:36 CLIENT -> SERVER: AUTH LOGIN
    2022-05-06 14:13:36 SERVER -> CLIENT: 334 VXNlcm5hbWU6
    2022-05-06 14:13:36 CLIENT -> SERVER:
    2022-05-06 14:13:36 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
    2022-05-06 14:13:36 CLIENT -> SERVER:
    2022-05-06 14:13:36 SERVER -> CLIENT: 534-5.7.14 534-5.7.14 Please log in via your web browser and then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 b5-20020adfe645000000b0020c7fb81b0fsm3713258wrn.46 – gsmtp
    2022-05-06 14:13:36 SMTP ERROR: Password command failed: 534-5.7.14 534-5.7.14 Please log in via your web browser and then try again.534-5.7.14 Learn more at534 5.7.14 https://support.google.com/mail/answer/78754 b5-20020adfe645000000b0020c7fb81b0fsm3713258wrn.46 – gsmtp
    SMTP Error: Could not authenticate.
    2022-05-06 14:13:36 CLIENT -> SERVER: QUIT
    2022-05-06 14:13:36 SERVER -> CLIENT: 221 2.0.0 closing connection b5-20020adfe645000000b0020c7fb81b0fsm3713258wrn.46 – gsmtp
    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

  3. Hentar Putra

    Mas saya mau tanya, kalau misal emailnya kita ga pakai gmail nih. saya mau pakai email misal dari perusahaan hentar@namaperusahaan.com. settingannya beda atau sama ya?

    • bakal beda, settingangan emailnya bisa di cek di cpanel dari domain perusahaannya. nanti ada settingan emailnya

  4. dira fitra

    2021-06-06 08:59:29 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP g22sm5304485pfv.123 – gsmtp
    2021-06-06 08:59:29 CLIENT -> SERVER: EHLO localhost
    2021-06-06 08:59:29 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [36.85.111.190]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
    2021-06-06 08:59:29 CLIENT -> SERVER: AUTH LOGIN
    2021-06-06 08:59:29 SERVER -> CLIENT: 334 VXNlcm5hbWU6
    2021-06-06 08:59:29 CLIENT -> SERVER:
    2021-06-06 08:59:30 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
    2021-06-06 08:59:30 CLIENT -> SERVER:
    2021-06-06 08:59:30 SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials g22sm5304485pfv.123 – gsmtp
    2021-06-06 08:59:30 SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials g22sm5304485pfv.123 – gsmtp
    SMTP Error: Could not authenticate.
    2021-06-06 08:59:30 CLIENT -> SERVER: QUIT
    2021-06-06 08:59:30 SERVER -> CLIENT: 221 2.0.0 closing connection g22sm5304485pfv.123 – gsmtp
    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

    Saya udah pastiin email dan password benar, kok masih gagal ya gan?

  5. yudha020

    bang ane mau tanya bang klk misal kita punya inputan nama, email, ho telepon dan pesan,
    nah nama kan dah masuk ke nama trus email masuk ke alamat email pengirim trus klk no telepon biar bisa jadi satu sama pesan gimana ya bang tapi dari dua itu berbeda inputan bang

    • pas proses kirim (send.php), kan disitu ada untuk get data pesan :
      $pesan = $_POST[‘pesan’];

      om tambah buat get data telepon :
      $telepon = $_POST[‘telepon’];

      lalu di file content.php, om edit bagian ini :
      < ?php echo $pesan; // Tampilkan isi pesan ?>

      ubah jadi gini :
      < ?php echo $pesan . ' No. Telp : ' . $telepon; // Tampilkan isi pesan ?>

  6. yumnavha

    kalo langsung memuat tulisan “Email gagal dikirim” gak ada pesan eror gimana ya bang kira-kira

    • coba coding ini :
      // $mail->SMTPDebug = 2; // Aktifkan untuk melakukan debugging

      diaktifkan / uncomment jadi gini :
      $mail->SMTPDebug = 2; // Aktifkan untuk melakukan debugging

      biar keliatan error nya apa pas kirim emailnya

  7. ragiriri

    gan ini kalo saya punya data di database, dia tabel punya
    id
    kantor
    email
    file
    nah ini mau bikin nanti ngambil file di database sesuai id, itu yg dirubah bagian mananya ya gan?

    • ya berarti ga harus ada form kirim email seperti ditutorial ini, langsung saja arahkan ke file send.php, hanya nanti email dan file nya query ke database

  8. saaaraaaaahhhh

    coding nya work. terimakasih tutorialnya

  9. itpemula

    saya coba kok error ya,padahal user sama pas emailnya sudah bener,eror2020-07-27 08:57:24 SERVER -> CLIENT: 220 smtp.gmail.com ESMTP d65sm14258953pfc.97 – gsmtp
    2020-07-27 08:57:24 CLIENT -> SERVER: EHLO localhost
    2020-07-27 08:57:24 SERVER -> CLIENT: 250-smtp.gmail.com at your service, [111.94.138.226]250-SIZE 35882577250-8BITMIME250-AUTH LOGIN PLAIN XOAUTH2 PLAIN-CLIENTTOKEN OAUTHBEARER XOAUTH250-ENHANCEDSTATUSCODES250-PIPELINING250-CHUNKING250 SMTPUTF8
    2020-07-27 08:57:24 CLIENT -> SERVER: AUTH LOGIN
    2020-07-27 08:57:24 SERVER -> CLIENT: 334 VXNlcm5hbWU6
    2020-07-27 08:57:24 CLIENT -> SERVER:
    2020-07-27 08:57:25 SERVER -> CLIENT: 334 UGFzc3dvcmQ6
    2020-07-27 08:57:25 CLIENT -> SERVER:
    2020-07-27 08:57:25 SERVER -> CLIENT: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials d65sm14258953pfc.97 – gsmtp
    2020-07-27 08:57:25 SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at535 5.7.8 https://support.google.com/mail/?p=BadCredentials d65sm14258953pfc.97 – gsmtp
    SMTP Error: Could not authenticate.
    2020-07-27 08:57:25 CLIENT -> SERVER: QUIT
    2020-07-27 08:57:25 SERVER -> CLIENT: 221 2.0.0 closing connection d65sm14258953pfc.97 – gsmtp
    SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

    • itu dari errornya “SMTP ERROR: Password command failed”. sudah diperiksa password emailnya sudah benar?

  10. Rifqi Tisyafianto

    ini bisa dipake di hostingan ga??

  11. Farhan Adib

    kan ini codenya udh saya custom biar sesuai sama website saya ya om, tapi pas mau ngirim email di localhost dia 400 bad request, dia errornya gini “Bad Request

    Your browser sent a request that this server could not understand.
    Apache/2.4.39 (Win64) OpenSSL/1.1.1b PHP/7.3.4 Server at localhost Port 80”
    kenapa ya om ?

    • error 400 itu sepertinya bukan karena emailnya. Error ini biasanya karena parameter yang dipanggil tidak sesuai, cpba kirim screenshot halaman yang errornya dan file php halaman yang errornya ke email admin@mynotescode.com. biasa saya bantuk cek.

  12. yoga alfian

    cara penerima banyak gimana ya? untuk konten kepada nya itu hanya bisa 1 penerima ya? tidak bisa 2 email langsung sekaligus? lalu gambar kalau mau 2 attach apakah bisa? dan seperti apa ya codes nya? terima kasih

    • biar bisa lebih dari 1 penerimanya, kuncinya ada di skrip ini :
      $mail->addAddress($email_penerima, '');

      tinggal om tambah skrip tersebut sesuai jumlah penerimanya, contoh saya mau kirim ke 3 penerima :
      $mail->addAddress('emailpenerima1@gmail.com, '');
      $mail->addAddress('emailpenerima2@gmail.com, '');
      $mail->addAddress('emailpenerima3@gmail.com, '');

      • Richard Bisnis

        Kalo kirim banyak email tanpa harus nambah kode-nya satu persatu gimana gan?
        Maksudnya, skrip nya otomatis “ngambil” satu per satu dari list email penerima yang kita punya.
        Bisa?

        • sangat bisa. list emailnya dari database? kalau iya tinggal buat query untuk select semua email dari database, nanti lakukan looping. contoh :

          while($data=mysqli_fetch_array($sql)){
          $mail->addAddress($data['email'], '');
          }

          $data['email'] itu untuk get field email sesuai query

          • Richard Bisnis

            Wah keren tuh bang.

            Oya trus itu berarti setiap email yang kita kirim akan seperti email personal gitu ya bang.

            Maksudnya, apakah script ini jadi kayak kita kirim email satu per satu tapi otomatis ke sebanyak list email yang kita punya gitu.

            Kayak email autoresponder pada umumnya gitu ya bang?

            Kalo memang bisa seperti email autoresponder (email marketing) gitu, berarti scrip ini bisa jadi solusi hemat dalam bisnis melalui email marketing bang.

            Keren.

            Karena seperti yang kita tahu, jasa email marketing sangat mahal dan terbatas pula.

            Jadi dengan scrip ini, kita bisa bikin sistem sendiri di localhost untuk bikin autoresponder dan email marketing sendiri bang.

          • Email autoresponder ini artinya ketika ada email masuk, dia otomatis balas email tersebut? kalau iya seperti itu, berarti harus ada alur sistem lagi untuk handle auto reply emailnya.

          • Richard Bisnis

            Bukan.maksud saya lebih ke arah email marketing.

            Misalnya; saya punya list email dari hasil pemasaran sebuah produk, dimana saya mendapatkan
            1,000 kustomer yang mana mereka (1,000 kustomer) tadi juga sharing email mereka ke saya saat
            akan download produk.

            Nah, dengan bermodal email kustomer tersebut, saya ingin rilis produk baru lagi nih ke mereka melalui email.

            Apakah saya bisa gunakan script ini di localhost saya untuk mngirimkan informasi produk terbaru saya,
            secara sekaligus, tanpa dianggap spam oleh penyedia SMTP server?

            Karena kalau email massal yang dikirim dalam satu rentang waktu yang sama, akan dianggap spam oleh SMTP server.

            Tapi kalau email massal yang dikirim dalam jumlah 5 – 10 email per sekali kirim (1 menit per 1 email terkirim),
            dan terus berlangsung sampai 1,000 email tujuan terkirim dalam beberapa jam, cenderung lebih aman.

            Apakah script ini bisa lakukan seperti itu?

  13. hasanhariri

    Mantap gan, begitu coba langsung berhasil….
    kuncinya banyak di “Less secure app access” masih nonaktif.
    seharusnya “aktif”

    semoga bisa bantu…

    • sama-sama om, senang bisa membantu.
      Iya memang om harus di aktifkan less secure app access nya. saya juga bulan ini ada rencana mau buat tutorial yang membahas masalah-masalah yang sering muncul ketika kirim email dan solusinya

  14. VeryRich

    Email gagal terkirim gan ?
    kira-kira apa penyebabnya gan

      • VeryRich

        Iya pakai gmail sebagai pengirimnya, tapi gagal terkirim dan tidak ada notifikasi errornya karena apa

  15. yoga alfian

    bang syaa berhasil cepet lagi, tp bang kenapa gambarnya syaa ga muncul ya, kayak logo kocal pecah gt

    • berarti salah path gambarnya om. Pastikan path gambar pada coding ini $mail->AddEmbeddedImage('image/logo.png', 'logo_mynotescode', 'logo.png'); sudah benar . dalam tutorial ini logonya saya simpan di folder image/.

    • Email dan Password pengirimmnya sudah benar om?
      Besok atau lusa saya akan buat catatan untuk memecahkan masalah email gagal dikirim (khusus yang menggunakan email google sebagai pengirimmnya sesuai tutorial ini)

  16. Sigit Purnomo

    Parse error: syntax error, unexpected ‘@’ in C:\Users\ACER\Downloads\Documents\xampp\htdocs\email_php\send.php on line 21
    Solusinya min, harus gimana tpi kya kepisah sama “@” ini min, mohon sulusinya

  17. Rifal Winata

    ini hanya untuk 1 pengirim saja ya ?

      • satria putra

        Sdh bisa Mas, krn firewall dan antivirus masih aktif, sya cb non aktifkan bisa langsung terkirim. terima kasih Mas,.

  18. iqbal alhuda

    pak, kalau mau membuat attachment berupa pdf bagaimana caranya?

    • tutorial ini sudah menambahkan upload attachment juga, coba saja, saya juga sudah coba kirim email + attachment pdf dengan codig di tutorial ini dan berhasil, coba dulu om

      • Iqbal alhuda

        Sudah saya coba pak, untuk file gambar png/jpg bisa dikirim. namun file pdf tidak berhasil dikirim.

  19. daniel123

    sy masih pakai server local, kenapa ya bang muncur pesan spt ini mohon penjelasannya, makasih

    Halaman ini tidak berfungsilocalhost saat ini tidak dapat menangani permintaan ini.
    HTTP ERROR 500

  20. muh adnan

    Parse error: syntax error, unexpected ‘@’ in /storage/emulated/0/tools/send.php on line 21

    Solusi bang error di line 21 untuk user name padahal udah cocok

  21. denis aria putra

    gan kalo ngirim emailnya lebih dari satu bagaimana dan emailnya kita ambil data dari table di mysql??
    help ya gan..

    • coba buka php.ini nya, lalu cari, ;extension=php_openssl.dll, hilangkan tanda titik koma diawal. Kemudian cari file libeay32.dll and ssleay32.dll (cari di google saja file dll nya). Kalau sudah di download file dll nya, copy and paste ke folder xampp/apache/bin/.

  22. RizkiKarianata

    Permisi om, mau tanya. Untuk pengirimannya sudah berhasil namun tidak masuk di gmail, ada solusi kah om? terimakasih banyak

  23. netizen123

    $this->mail->setFrom(‘from@example.com’,’testing’)
    bg kenapa ni saya sudah buat email pengirim from@example tetapi ketika sudah masuk email , email pengirim tetap memakai email asli saya.
    tolong saran bg agar ketika saya ngirim email tidak terkirim dari email asli saya tapi terkirim dengan email from@example.com ini?

    • setau saya itu hanya mengganti label pengirim saja, pengirim aslinya tetap dari email aslinya om, kenapa tidak buat saja email aslinya sama dengan email yang om ingin kan?

  24. darilyoga

    pak klo mau kirim file attach lebih dari 1 gimana ya pak,

    • bikin 2x skrip ini nya om :

      $attachment = $_FILES['attachment']['name'];
      $attachment2 = $_FILES['attachment2']['name'];
      // other code.....
      if(empty($attachment) && empty($attachment2)){
      // other code....
      }
      // other code.....
      $tmp = $_FILES['attachment']['tmp_name'];
      $size = $_FILES['attachment']['size'];
      $tmp2 = $_FILES['attachment2']['tmp_name'];
      $size2 = $_FILES['attachment2']['size'];
      if($size <= 25000000 && $size2 <= 25000000){
      $path = 'tmp/'.$attachment;
      $path2 = 'tmp/'.$attachment2;

      move_uploaded_file($tmp, $path);
      move_uploaded_file($tmp2, $path2);

      $mail->addAttachment($path);
      $mail->addAttachment($path2);
      }

      coba kaya gitu om, saya pun belum pernah coba, tapi harusnya bisa kaya gitu

  25. Anggi Irwansyah

    pak kok masih gagal ya ? kira” salah di mn ya ? sourch code sudah sesuai tutorial. apa ada settingan di xampp yg harus d rbh ? mohon jawabannya

  26. Yoganansa

    Pak klo pke smtp port 587 dan authentisikasi nya mati bagaimana pak,.sya cba pake smtp email domain pak tpi tdak bsa kirim

    • maksudnya authentifikasi gimana ya?
      coba tambahkan skrip ini :
      $mail->SMTPDebug = 2;

      sebelum skrip:
      $send = $mail->send();

      lalu coba jalankan, nanti keluar error log nya karena apa

NOTE ARCHIVES