Dalam tutorial ini, Anda akan belajar cara mengirim email dalam PHP menggunakan library PHPMailer melalui SMTP Gmail. Seperti PHPMailer, ada beberapa pustaka pengirim email yang bagus di PHP e. g. PIR. Antarmuka email, Swiftmailer dll yang dapat membantu Anda mengirim email dengan mudah dalam PHP menggunakan SMTP Gmail
Prasyarat
Sebelum memulai dengan langkah-langkah cara mengirim email menggunakan SMTP dalam contoh PHP, mari kita lihat dulu apa saja batasan server SMTP Gmail dan cara mengatasinya
- Gmail membatasi jumlah penerima dalam satu email dan jumlah email yang dapat dikirim per hari. Batas saat ini adalah 500 Email dalam sehari atau 500 penerima dalam satu email. Anda tidak dapat benar-benar meningkatkan batas ini. Jika Anda ingin mengirim di atas batas ini, maka Anda perlu berintegrasi dengan platform pengiriman email pihak ketiga seperti Pepipost Sendgrid dll
- Saat mencapai batas ambang, Anda tidak akan dapat mengirim pesan selama 24 jam ke depan. Setelah periode penangguhan sementara ini berakhir, penghitung akan disetel ulang secara otomatis, dan pengguna dapat melanjutkan pengiriman email
- Secara default, aplikasi/kode pihak ketiga mana pun tidak diizinkan untuk mengirim email menggunakan akun Gmail Anda. Dan, karenanya ada beberapa pengaturan yang perlu dilakukan di akhir Anda
Bagaimana Cara Mengaktifkan Pengiriman Email Di Gmail?
- Sebelum mengirim email menggunakan Server SMTP Gmail, Anda membuat beberapa pengaturan tingkat keamanan dan izin di bawah Pengaturan Keamanan Akun Google Anda
- Pastikan Verifikasi 2 Langkah dinonaktifkan
- AKTIFKAN akses "Aplikasi Kurang Aman" atau klik di sini
- Jika verifikasi 2 langkah diaktifkan, Anda harus membuat kata sandi aplikasi untuk aplikasi atau perangkat Anda
- Untuk tindakan keamanan, Google mungkin meminta Anda menyelesaikan langkah tambahan ini saat masuk. Klik di sini untuk mengizinkan akses ke akun Google Anda menggunakan perangkat/aplikasi baru
Catatan. Mungkin diperlukan waktu satu jam atau lebih untuk mencerminkan perubahan keamanan apa pun
Menulis Kode PHP untuk Mengirim Email menggunakan SMTP Gmail
Langkah 1. Unduh pustaka PHPMailer dari tautan github ini. Untuk langsung mendownload. zip, gunakan tautan ini
Buka zip masternya. zip di direktori aplikasi Anda dan jalankan perintah berikut dari direktori aplikasi Anda
composer require phpmailer/phpmailerComposer adalah cara yang disarankan untuk menginstal PHPMailer
Langkah 2. Menulis Kode PHP untuk membuat koneksi SMTP
- Menggunakan kredensial Gmail Anda, sambungkan ke host "smtp. gmail. com"
- Klik di sini untuk beberapa Contoh dan Tutorial PHPMailer lainnya
Langkah 3. Sertakan paket dan file untuk protokol PHPMailer dan SMTP
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php';_Langkah 4. Inisialisasi PHP Mailer dan atur SMTP sebagai protokol surat
$mail = new PHPMailer(); $mail->IsSMTP(); $mail->Mailer = "smtp";Langkah 5. Tetapkan parameter yang diperlukan untuk membuat koneksi SMTP seperti kredensial server, port, dan akun. SSL dan TLS adalah protokol kriptografi yang menyediakan autentikasi dan enkripsi data antara server, mesin, dan aplikasi yang beroperasi melalui jaringan. SSL adalah pendahulu dari TLS
$mail->SMTPDebug = 1; $mail->SMTPAuth = TRUE; $mail->SMTPSecure = "tls"; $mail->Port = 587; $mail->Host = "smtp.gmail.com"; $mail->Username = "your-email@gmail.com"; $mail->Password = "your-gmail-password";Langkah 6. Tetapkan parameter yang diperlukan untuk header dan isi email
$mail->IsHTML(true); $mail->AddAddress("recipient-email@domain", "recipient-name"); $mail->SetFrom("from-email@gmail.com", "from-name"); $mail->AddReplyTo("reply-to-email@domain", "reply-to-name"); $mail->AddCC("cc-recipient-email@domain", "cc-recipient-name"); $mail->Subject = "Test is Test Email sent via Gmail SMTP Server using PHP Mailer"; $content = "This is a Test Email sent via Gmail SMTP Server using PHP mailer class.";_Langkah 7. Kirim email dan tangkap pengecualian yang diperlukan
Bekerja Kode PHP untuk Mengirim Email Menggunakan Server SMTP
Klik di sini untuk mengunduh kode PHP lengkap yang berfungsi untuk mengirim email menggunakan server SMTP Gmail. Anda hanya perlu mengubah beberapa nilai dan itu akan berhasil
Daftar Kemungkinan Kesalahan Dan Pengecualian
Kesalahan 1. Perintah Sandi Gagal. 534-5. 7. 9 Kata Sandi Khusus Aplikasi Diperlukan
SMTP ERROR: Password command failed: 534-5.7.9 Application-specific password required. Learn more at 534 5.7.9 //support.google.com/mail/?p=InvalidSecondFactor z2sm11041738pfq.58 - gsmtp SMTP Error: Could not authenticate. CLIENT -> SERVER: QUIT SMTP connect() failed. //github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Problem sending email._Ini terjadi sebagian besar ketika Kredensial Server Surat SMTP benar tetapi Kata Sandi Khusus Aplikasi tidak diberikan
Kesalahan 2. KESALAHAN SMTP. Perintah Sandi Gagal. 535-5. 7. 8 Nama Pengguna Dan Kata Sandi Tidak Diterima
SMTP ERROR: Password command failed: 535-5.7.8 Username and Password not accepted. Learn more at 535 5.7.8 //support.google.com/mail/?p=BadCredentials f3sm5807314pgj.62 - gsmtp SMTP Error: Could not authenticate. CLIENT -> SERVER: QUIT SMTP connect() failed. //github.com/PHPMailer/PHPMailer/wiki/Troubleshooting Problem sending email.Jika Anda mengalami kesalahan ini, sebagian besar karena kata sandi khusus aplikasi salah
Kesalahan 3. Alamat tidak valid. (Ke). Penerima e-mail
Invalid address: (to): recipient-email Problem sending email._Jika Anda mengalami kesalahan ini, sebagian besar karena email penerima tidak valid
Kesalahan 4. SMTP. Server SMTP Tidak Mendukung Otentikasi
authentication failure [SMTP: SMTP server does no support authentication (code: 250, response: mx.google.com at your service, [98.117.99.235] SIZE 35651584 8BITMIME STARTTLS ENHANCEDSTATUSCODES PIPELINING)]_Jika Anda mengalami kesalahan ini, sebagian besar karena kode Anda tampaknya tidak menggunakan TLS/SSL, yang diperlukan untuk mengirimkan email ke Google , dan Anda juga harus menggunakan port 587 atau 465
Konfirmasi ulang sekali apakah nilai $host diatur sebagai berikut
Kesalahan 5. Stream_socket_client(). Tidak Dapat Terhubung ke Smtp. Gmail. Kom
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php';_1Jika Anda mengalami kesalahan ini, sebagian besar karena server Anda tidak dapat tersambung ke smtp. gmail. com di port 587. Ini sebagian besar karena penyedia hosting Anda memiliki beberapa aturan firewall ketat yang memblokir server Anda untuk terhubung ke server eksternal lainnya melalui port SMTP 587
Kesalahan 6. Kesalahan Server SMTP. 5. 5. 1 Otentikasi Diperlukan. Pelajari Lebih Lanjut Di 530 5. 5. 1
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php';_2Jika Anda mengalami kesalahan ini, sebagian besar karena Anda telah mengaktifkan 2FA di akun Gmail Anda atau Anda belum mengaktifkan akses ke Aplikasi Kurang Aman. Baca di atas untuk mengatasi masalah ini
Kesalahan 7. Pesan. fsockopen(). Tidak Dapat Menghubungkan ke SSL. //Smtp. Gmail. Kom
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php';_3Jika Anda mengalami kesalahan ini, maka ini sebagian besar karena masalah SSL. Anda perlu mengaktifkan SSL di php. ini dari konfigurasi server Anda. Jika Anda menggunakan server XAMPP, periksa apakah diaktifkan atau tidak. Anda akan mendapatkannya di info PHP
Kesalahan 8. Email dari kode PHP masuk Spam
Jelas ini bukan kesalahan, tapi pasti menjadi perhatian. Salah satu alasan paling umum email masuk spam adalah daftar hitam. Anda harus memeriksa apakah domain atau alamat IP Anda masuk daftar hitam
Keluaran debugger langkah demi langkah setelah berhasil mengirim email
use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require 'PHPMailer-master/src/Exception.php'; require 'PHPMailer-master/src/PHPMailer.php'; require 'PHPMailer-master/src/SMTP.php';_4Kesimpulan
Semoga langkah-langkah yang dijelaskan di atas bermanfaat dan Anda berhasil mengirim email dari server SMTP Gmail menggunakan PHP. Jangan ragu untuk berkontribusi, jika Anda mengalami beberapa masalah yang tidak tercantum sebagai bagian dari tutorial ini. Gunakan bagian komentar di bawah ini untuk bertanya/berbagi umpan balik