Mempelajari cara mengirim email akan membawa kode PHP Anda ke level berikutnya. Anda akan dapat menulis daemon peringatan, menerima email saat seseorang mencoba masuk dan banyak lagi Show
Tutorial ini mencakup semua yang perlu Anda ketahui. langkah-langkah penginstalan, fungsi kelas, cara menggunakan autentikasi SMTP (termasuk Gmail), cara menangani error, dan lainnya. Anda juga akan menemukan banyak contoh kode (Anda mungkin ingin menambahkan halaman ini ke Bookmark Anda untuk kembali ke sini sebagai referensi. )
Daftar Isi
Dirancang oleh Freepik
MENGAPA MENGGUNAKAN PHPMAILER?
PHPMailer menawarkan banyak fungsi melalui fungsi inti PHP mail(), termasuk enkripsi dan autentikasi SMTP SSL, pesan HTML, lampiran file, dan lainnya Selain itu, PHPMailer jauh lebih mudah digunakan daripada mail() dan menyediakan sintaks berorientasi objek yang bersih dan mudah dibaca Mari kita lihat lebih detail mengapa Anda harus menggunakan PHPMailer daripada mail() atau library pihak ketiga lainnya
MENGAPA MENGGUNAKAN PHPMAILER BUKAN surat ()?Setidaknya untuk dua alasan bagus Yang pertama adalah bahwa mail() bergantung pada subsistem email server untuk bekerja. Artinya, jika Anda ingin mengubah beberapa setelan seperti server SMTP atau parameter autentikasi, Anda harus melakukannya di seluruh sistem Itu biasanya operasi yang cukup sulit, dan kecuali Anda memiliki server khusus atau Anda menggunakan lingkungan pengembangan PHP lokal, Anda mungkin bahkan tidak diizinkan melakukannya Ini juga membuat hampir tidak mungkin untuk menggunakan konfigurasi yang berbeda pada saat yang sama, misalnya menggunakan beberapa akun SMTP dan beralih di antara keduanya secara terprogram Seperti yang akan Anda lihat sebentar lagi, dengan PHPMailer sangat mudah untuk mengubah parameter apa pun secara dinamis langsung di skrip PHP Anda
Alasan kedua adalah bahwa mail() tidak menawarkan fungsionalitas lanjutan apa pun mail() baik untuk mengirim email teks biasa yang sederhana, tetapi sangat membatasi jika Anda perlu melakukan lebih dari itu. Menambahkan lampiran atau mengirim email HTML, misalnya, sangat sulit dengan mail(), sedangkan dengan PHPMailer hanya masalah satu baris kode. ith PHPMailer it’s just a matter of a single line of code.
APAKAH ADA ALTERNATIF PHPMAILER?Ya, ada pustaka lain seperti Zend Mail, SwiftMailer dan Zeta Components Mail, tetapi PHPMailer biasanya menjadi pilihan pertama karena popularitasnya Tentu saja, jika Anda sudah terbiasa dengan ekstensi email lain dan berfungsi dengan baik untuk Anda, Anda dapat tetap menggunakannya Namun jika Anda ingin mulai menggunakan salah satunya dan harus memilih yang mana, PHPMailer mungkin adalah pilihan terbaik karena merupakan yang paling banyak digunakan. Ekstensi lain seperti Zend Mail, SwiftMailer, atau Zeta Components Mail mungkin sama bagusnya dengan PHPMailer, tetapi lihat hasil penelusuran Google untuk “php mail library”
Dan ini adalah hasilnya di YouTube
Seperti yang Anda lihat dengan jelas, PHPMailer mendominasi hasil pertama. Itu tidak berarti PHPMailer lebih baik daripada ekstensi lain, tetapi itu berarti itu yang paling populer Alasan utama Anda ingin menggunakan perpustakaan yang paling banyak digunakan adalah dukungan. semakin banyak perangkat lunak yang digunakan, semakin mudah menemukan bantuan dan contoh online
Saya juga harus menyebutkan bahwa saya telah menggunakan PHPMailer untuk bekerja selama beberapa tahun sekarang, mengirim hingga 100 email per hari dengan itu. Saya menggunakannya untuk mengirimkan peringatan menggunakan daemon PHP, untuk memantau penggunaan memori skrip saya dan untuk menerima peringatan jika serangan injeksi SQL terdeteksi Sejauh yang saya ingat, saya tidak pernah mengalami masalah dengan itu, jadi kemungkinan Anda juga tidak akan mengalaminya
Jika Anda ingin mempelajari lebih lanjut tentang cara menggunakan fungsi PHP mail(), ekstensi Pear Mail, atau Swift Mailer, Anda dapat melihat tutorial mendetail ini dari Mailtrap.
BAGAIMANA CARA MENGINSTAL PHPMAILER? PHPMailer versi lama (hingga versi 5) digunakan untuk menyediakan “PHPMailerAutoload. php” , dan yang perlu Anda lakukan hanyalah memasukkannya ke dalam skrip Anda. Mulai dari versi 6, file ini tidak lagi tersedia. Sekarang, untuk membuat kelas PHPMailer tersedia di skrip Anda, Anda memiliki dua opsi
Opsi pertama adalah yang direkomendasikan, karena Komposer menangani semua langkah pengunduhan, pembaruan, dan pemeriksaan ketergantungan. Ini sangat berguna jika Anda perlu menginstal pustaka lain juga, seperti yang diperlukan untuk autentikasi Google XOAUTH2 (saya akan memberi tahu Anda cara menggunakan XOAUTH2 dengan Google nanti di postingan ini) Namun, opsi kedua mungkin berguna jika Anda tidak ingin menginstal Komposer karena alasan tertentu, misalnya jika Anda menggunakan PHPMailer di lingkungan pengujian Mari kita lihat kedua opsi instalasi, dimulai dengan Composer
Menginstal Komposer dan PHPMailer di Windows (jika Anda menggunakan XAMPP, WAMP dll. )Komposer adalah manajer ketergantungan untuk PHP. Ini membantu Anda mengunduh, menginstal, dan tetap memperbarui ekstensi dan pustaka PHP Menginstal Komposer hanya membutuhkan beberapa menit
Sekarang Anda perlu membuka terminal (dengan mengeksekusi “cmd. exe” atau cari “Command prompt” di menu Start) dan arahkan ke direktori tempat Anda ingin menginstal paket Composer termasuk PHPMailer (jika Anda memerlukan bantuan menggunakan terminal, beri saya komentar di bawah) Misalnya, mari gunakan “C. \xampp\composer” sebagai direktori instalasi. Pertama buat direktori, lalu kembali ke terminal dan pindah ke direktori dengan mengetikkan “cd C. \xampp\komposer”. Kemudian, cukup jalankan perintahnya. “komposer memerlukan phpmailer/phpmailer” seperti yang ditunjukkan pada gambar berikut
PHPMailer akan diinstal dan Anda akan siap menggunakannya
Composer akan menghasilkan file “autoload. php” yang dapat Anda gunakan untuk menyertakan pustaka yang terinstal, dalam hal ini PHPMailer. File ini terletak di bawah direktori "vendor" secara default, meskipun Anda dapat mengonfigurasi Composer untuk menggunakan nama direktori yang berbeda Jadi, dengan asumsi direktori instalasi Anda adalah “C. \xampp\composer", Anda harus memasukkan "C. \xampp\composer\vendor\autoload. php”.
Selain itu, karena sekarang PHPMailer mendefinisikan kelasnya di bawah namespace PHPMailer\PHPMailer , sebaiknya gunakan direktif use di .
Menginstal Komposer dan PHPMailer di LinuxBanyak distribusi GNU/Linux menyertakan paket Composer dalam repositori mereka Pada sistem seperti Debian (termasuk Ubuntu), misalnya, Anda cukup menggunakan perintah "apt-get" untuk menginstal Komposer (menginstal Komposer dari kode sumber berada di luar cakupan panduan ini, tetapi jika Anda memerlukan bantuan, rasakan
Setelah Composer terinstal, Anda dapat menggunakan Composer command line yang dapat dieksekusi untuk menginstal PHPMailer di dalam direktori pilihan Anda, seperti yang sudah kita lakukan .
Sekarang PHPMailer diinstal Anda dapat memasukkan file “autoload. php” dan atur alias namespace seperti untuk instalasi Windows (mengubah jalur file, tentu saja)
Menginstal PHPMailer tanpa KomposerJika Anda memilih untuk tidak menggunakan Composer, Anda cukup mengunduh file sumber PHPMailer dan menyertakan file yang diperlukan secara manual Anda dapat mengunduh file ZIP dengan kode sumber dari beranda PHPMailer, mengklik tombol hijau "Kloning atau unduh" (di sebelah kanan) lalu pilih "Unduh ZIP". Buka zip paket di dalam direktori tempat Anda ingin menyimpan file sumber
Maka Anda hanya perlu menyertakan file kelas yang diperlukan dalam skrip PHP Anda Minimal, Anda ingin menyertakan kelas PHPMailer utama, kelas Pengecualian (untuk penanganan error), dan mungkin juga kelas SMTP, jika Anda akan terhubung ke server SMTP untuk pengiriman email Anda juga harus mengatur alias namespace seperti yang Anda lihat sebelumnya untuk instalasi Composer Dengan asumsi direktori kode sumber Anda adalah “C. \PHPMailer”, seperti inilah tampilan skrip PHP Anda
_
Menjaga agar PHPMailer tetap mutakhirJika Anda memilih metode penginstalan Komposer, Anda dapat terus memperbarui penginstalan PHPMailer dengan menjalankan perintah Komposer "perbarui" Sintaksnya sama pada Windows dan Linux. Buka saja direktori instalasi (tempat Anda mengeluarkan perintah instalasi) dan jalankan pembaruan.
Jika Anda memilih untuk tidak menggunakan Komposer, maka Anda harus mengunduh file ZIP baru secara manual dari beranda PHPMailer dan menimpa instalasi sebelumnya (mengikuti langkah yang sama)
Apa pun itu, sebelum memperbarui penginstalan, ada baiknya Anda melihat file log perubahan dan catatan pembaruan, hanya untuk memastikan bahwa aplikasi PHP Anda kompatibel dengan versi PHPMailer yang baru
CARA MENGIRIM EMAIL PERTAMA ANDA DENGAN PHPMAILER Untuk mengirim email dengan PHPMailer Anda perlu membuat objek PHPMailer , mengatur beberapa parameter menggunakan methods and attributes and finally call the send() method. Mari kita lihat contoh dasar sehingga Anda dapat memahami cara kerja kelas ini (jangan khawatir tentang detailnya untuk saat ini, kami akan membahasnya di bab berikutnya) Dalam semua contoh saya akan menggunakan jalur instalasi Windows, karena saya bekerja di lingkungan pengembangan XAMPP lokal saya. Jika Anda menggunakan Linux, cukup ubah jalur sertakan yang sesuai.
Lihat bagaimana PHPMailer menggunakan sintaks OOP yang bagus dan mudah? Argumen konstruktor kelas disetel ke TRUE untuk membuat PHPMailer menggunakan pengecualian untuk pelaporan kesalahan. Jika Anda memilih untuk tidak menggunakan pengecualian, abaikan saja argumennya (atau setel ke FALSE ). Dalam hal ini Anda perlu memeriksa nilai pengembalian metode send() dan mencari pesan kesalahan dalam atribut $ErrorInfo.
_Sangat menarik untuk melihat bagaimana skrip ini akan terlihat jika Anda menggunakan fungsi mail()
Ya, sintaksnya jauh lebih buruk 🙂
Pada contoh dasar sebelumnya, kami tidak memberi tahu PHPMailer untuk menggunakan server SMTP tertentu. Dalam hal ini PHPMailer menggunakan subsistem email server, seperti halnya mail() Tentu saja, Anda ingin menggunakan parameter koneksi SMTP Anda sendiri. Jangan khawatir. kami akan membahasnya sebentar lagi Sekarang mari kita lihat bagaimana menggunakan semua fungsionalitas kelas PHPMailer
Apakah Anda ingin berbicara dengan saya dan pengembang lain tentang PHPMailer, PHP, dan pengembangan web? . Kafe Alex PHP Sampai jumpa di sana 🙂
CARA MENGGUNAKAN KELAS PHPMAILER
Setelah Anda membuat objek PHPMailer seperti yang terlihat pada contoh sebelumnya, Anda dapat menggunakan fungsionalitas kelas PHPMailer yang ekstensif untuk menyetel semua parameter dan atribut email yang Anda perlukan Mari kita lihat metode PHPMailer yang paling berguna
_
_
_
_0
_1
_2
_3
_4
_5
CARA MENGGUNAKAN SERVER SMTP KUSTOM PHPMailer memungkinkan Anda mengonfigurasi parameter koneksi SMTP langsung dari skrip PHP Anda, menggunakan metode dan atribut kelas PHPMailer Ini sangat berguna dibandingkan dengan mail(), yang bergantung pada konfigurasi sistem yang mendasarinya Contoh berikut menunjukkan cara menggunakan server SMTP tertentu menggunakan SSL dan autentikasi
_6
Tentu saja, Anda perlu menggunakan parameter koneksi yang benar, termasuk kemampuan enkripsi server dan port TCP yang didengarkan
Atribut terkait SMTP yang lebih canggih adalah larik SMTPOptions . Jika Anda menggunakan enkripsi SMTP, PHPMailer meneruskan larik ini ke fungsi PHP stream_context_create() yang mendasarinya Anda dapat menggunakan atribut SMTPOptions untuk menyetel opsi konteks SSL lanjutan. Meskipun Anda tidak perlu sering menggunakannya, dalam beberapa kasus ini bisa sangat berguna Misalnya, jika Anda memiliki server SMTP sendiri yang menggunakan sertifikat yang ditandatangani sendiri, sambungan SMTP mungkin akan gagal karena kurangnya tanda tangan otoritas sertifikasi yang valid. Ini adalah skenario yang cukup umum di lingkungan kerja Dalam kasus ini, Anda dapat menggunakan atribut SMTPOptions untuk memberi tahu PHPMailer (dan subsistem PHP SSL) untuk mengabaikan masalah ini
Pada contoh berikut, kami menyetel parameter verifikasi_peer dan verify_peer_name ke FALSE dan parameter allow_self_signed ke TRUE untuk menonaktifkan beberapa pemeriksaan keamanan
_7
CONTOH VIDEO PRAKTISMengapa Anda tidak melihat contoh video praktis? . Digital menunjukkan cara membuat skrip PHPMailer
DEBUGGING DAN PENANGANAN KESALAHAN Jika terjadi kesalahan saat mencoba mengirim pesan, objek PHPMailer akan menampilkan dan pengecualian (jika TRUE diteruskan ke konstruktor) dan menyimpan informasi kesalahan di dalam atribut Cara terbaik untuk menangani error adalah dengan menggunakan blok try/catch untuk menangkap exception, seperti yang ditunjukkan pada contoh sebelumnya. Kelas PHPMailer/Exception menyediakan metode errorMessage() untuk mengambil pesan kesalahan langsung dari objek pengecualian
DEBUG SMTPAnda dapat menyetel atribut SMTPDebug untuk mengaktifkan proses debug koneksi SMTP di layar Output debugging semacam ini bisa sangat berguna dalam fase pengembangan, karena memungkinkan Anda melihat apakah ada yang salah dengan koneksi SMTP Perhatikan bahwa output SMTPDebug harus digunakan hanya untuk tujuan debug, karena dapat mengekspos data sensitif ke klien jarak jauh
Argumen SMTPDebug dapat diatur ke nilai integer antara 0 (default, tidak ada output yang dihasilkan) dan 4 (output info tingkat rendah ditampilkan). Jika email Anda tidak terkirim, saya sarankan Anda menetapkan nilai ini ke 4 dan lihat apa yang terjadi
_8
LOKALISASI PESAN KESALAHANPHPMailer mendukung pelokalan pesan kesalahan. Anda dapat menggunakan salah satu dari banyak (48 pada saat penulisan) terjemahan yang sudah tersedia (Anda dapat menemukan daftarnya di sini) atau bahkan membuat sendiri bahasa yang disesuaikan Untuk menyetel bahasa, cukup panggil metode setLanguage().
_9
Jika Anda ingin menggunakan set terjemahan Anda sendiri, maka Anda harus meneruskan jalur file terjemahan ke fungsi sebagai parameter kedua (dengan pemisah direktori tambahan). Jika Anda menggunakan salah satu yang default, biarkan parameter kedua kosong.
CARA MENGGUNAKAN PHPMAILER DENGAN SMTP GOOGLE (GMAIL).
Server SMTP Google adalah smtp. gmail. com. Ini menggunakan koneksi terenkripsi TLS dan mendengarkan port 587 Oleh karena itu, konfigurasi SMTP PHPMailer harus menggunakan pengaturan tersebut
0
Server SMTP biasanya meminta klien untuk mengautentikasi dirinya sendiri dengan nama pengguna dan kata sandi sebelum diizinkan mengirim pesan. SMTP Google juga demikian, tetapi Anda mungkin perlu mengambil langkah tambahan untuk membuatnya berfungsi Langkah autentikasi SMTP Google dengan PHPMailer bergantung pada apakah Anda mengaktifkan verifikasi dua langkah Google atau tidak
AUTENTIKASI GMAIL DENGAN VERIFIKASI 2 LANGKAH DINONAKTIFKANJika Anda tidak mengaktifkan verifikasi dua langkah Google, Anda dapat mencoba menggunakan nama pengguna Anda sendiri (dalam hal ini, alamat email Anda) dan kata sandi untuk masuk
1
Itu *mungkin* berfungsi, namun Google sangat curiga dengan upaya masuk yang tidak biasa dan mungkin menolak untuk mengotorisasi proses autentikasi skrip PHPMailer Anda. Ini juga dijelaskan dalam dokumen Pemecahan Masalah PHPMailer ini SMTP Google dapat meminta "klien" (dalam hal ini, skrip PHPMailer) untuk masuk dengan browser web terlebih dahulu, atau mengikuti petunjuk halaman ini
Jika Anda tidak ingin mengaktifkan verifikasi 2 langkah, Anda mungkin harus memberi tahu Google untuk "Izinkan upaya masuk aplikasi yang kurang aman" agar autentikasi PHPMailer dapat diterima Untuk melakukannya, Anda dapat mengikuti petunjuk ini, atau buka saja di sini saat masuk dengan akun Google yang ingin Anda gunakan
Setelah Anda mengesahkan koneksi “aplikasi yang kurang aman”, Anda dapat mencoba lagi dan melihat apakah itu berfungsi (Anda mungkin perlu menunggu beberapa jam agar perubahan diterapkan) Jika masih tidak berhasil, Anda memiliki dua opsi. aktifkan verifikasi 2 langkah dan ikuti petunjuk di bawah ini atau gunakan proses autentikasi XOAUTH2 seperti yang dijelaskan nanti dalam tutorial ini Pilihan Anda 🙂
AUTENTIKASI GMAIL DENGAN VERIFIKASI 2 LANGKAH DIAKTIFKAN Jika Anda mengaktifkan verifikasi dua langkah , Anda perlu membuat “Sandi aplikasi” dan menggunakannya untuk masuk dengan PHP, karena Anda tidak akan dapat menggunakan . "Kata sandi aplikasi" adalah string yang dapat Anda gunakan untuk masuk tanpa faktor autentikasi kedua. Untuk membuatnya, cukup ikuti petunjuk Google di halaman ini atau cukup buka link ini
Dari sana, pilih nama untuk aplikasi Anda (misalnya, "PHPMailer") dan tekan tombol "Hasilkan" seperti yang terlihat pada gambar ini
Setelah menekan tombol, Anda akan mendapatkan string 16 karakter yang dapat Anda gunakan untuk masuk. Pastikan untuk segera menyalinnya, karena Anda tidak akan dapat mengambilnya nanti (jika hilang, Anda perlu membuat kata sandi aplikasi baru dari awal)
Sekarang yang perlu Anda lakukan adalah menggunakan string baru ini sebagai kata sandi dalam konfigurasi PHPMailer Anda (tanpa spasi, itu hanya untuk keterbacaan)
2
MENGGUNAKAN GMAIL DENGAN AUTENTIKASI XOAUTH2XOAUTH2 adalah metode autentikasi yang direkomendasikan Google. Meskipun ini adalah protokol yang cukup rumit, berkat PHPMailer dimungkinkan untuk menggunakannya tanpa banyak kesulitan Implementasi XOAUTH2 PHPMailer bergantung pada perpustakaan liga/oauth2-klien, yang karenanya harus dipasang di sistem Anda. Khususnya, Anda perlu menginstal paket liga/oauth2-google
Cara termudah untuk menginstalnya adalah dengan menggunakan Composer. Jika Anda memilih untuk menginstal PHPMailer dengan Composer, Anda dapat melakukan hal yang sama dengan library liga/oauth2-google. cukup buka direktori instalasi Composer dan ketik “composer require league/oauth2-google”
Anda juga dapat menginstal pustaka ini di dalam direktori lain, tetapi dalam hal ini Anda harus menyertakan dua pemuat otomatis. file php. Jika Anda tidak menggunakan Composer untuk menginstal PHPMailer, cukup instal library OAUTH2 di direktori baru Sayangnya, menginstal liga/oauth2-google tanpa Composer agak sulit, karena membutuhkan beberapa library untuk diinstal juga. Jika Anda benar-benar membenci Komposer dan tidak ingin menggunakannya, Anda harus mengunduh semuanya secara manual dan memasukkannya ke dalam skrip Anda
Setelah Anda memasang liga/oauth2-google, Anda perlu melakukan beberapa langkah dengan akun Google yang akan Anda gunakan Semua langkah ini dijelaskan secara rinci dalam tutorial PHPMailer XOAUTH2 ini. Ikuti semua langkah tetapi berhenti sebelum paragraf "Konfigurasi skrip email Anda" terakhir, karena sudah usang dan kode contoh di sana tidak berfungsi lagi Ingatlah bahwa Anda harus memiliki lingkungan pengembangan yang berfungsi, karena Anda perlu mengedit file PHPMailer (get_oauth_token. php) dan jalankan dengan web browser
Setelah Anda menyelesaikan semua langkah yang diperlukan, Anda akan memiliki tiga string autentikasi
Anda perlu menggunakannya dalam proses otentikasi PHPMailer XAUTH2 Anda Selanjutnya Anda perlu mengonfigurasi skrip PHPMailer, sertakan pustaka OAUTH2 dan atur parameter autentikasi. Langkah-langkah yang diperlukan adalah
Dalam contoh terakhir ini Anda dapat melihat bagaimana hal ini dilakukan.
_3
KESIMPULAN
Menguasai penanganan email PHP adalah keuntungan besar Dengan tutorial ini, Anda telah mempelajari semua yang perlu Anda ketahui untuk menggunakan PHPMailer secara maksimal. cara menginstalnya, cara menggunakan fungsinya, cara mengonfigurasi koneksi SMTPS (termasuk Gmail), penanganan kesalahan, dan lainnya Jangan ragu untuk mem-bookmark halaman ini dan kembali ke sini untuk referensi sesuai kebutuhan Jika Anda memiliki masalah, lihat panduan Pemecahan Masalah PHPMailer atau tinggalkan komentar di bawah. Anda juga diundang untuk bergabung dengan Grup Facebook saya (kafe Alex PHP) di mana saya dan komunitas saya akan dengan senang hati membantu Anda Sekarang, saya penasaran. bagaimana ANDA menggunakan email di aplikasi web Anda? Bagaimana cara mengaktifkan PHPMailer?Menginstal PHPMailer . Masuk ke server Anda melalui SSH Pastikan Anda berada di direktori home pengguna Anda. [server]$ cd ~ Buka zip file. [server]$ unzip master. zip. Ini membuat direktori bernama PHPMailer-master Ganti nama direktori ini. [server]$ mv PHPMailer-master PHPMailer Bagaimana cara menginstal PHPMailer menggunakan Composer?Ketik " composer require phpmailer/phpmailer " dan tekan ↵ Enter . Terminal akan menampilkan dinding teks saat menginstal Composer. Composer diinstal dengan "autoload. php” yang dapat Anda gunakan.
Apa itu SMTP PHPMailer?PHPMailer adalah pustaka kode, yang terintegrasi` untuk mengirim email dengan aman dan efektif melalui kode PHP dari server web . Mengirim email secara khusus melalui kode PHP menggunakan lingkungan tingkat tinggi untuk menyiapkan konvensi standar SMTP dan masalah terkait serta kerentanan seputar infus Mail untuk spamming.
Bagaimana cara menggunakan PHPMailer?Buka Command prompt dan pergi ke direktori proyek di mana Anda ingin menggunakan PHPMailer. . isHTML(). Jika benar, setel format email ke HTML Subjek. Tetapkan subjek Surat Tubuh. Mengatur isi Mail Badan Alt. Badan alternatif jika klien email tidak mendukung HTML |