Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

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

 

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

 

 

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

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.

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

 

 

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”

 

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

Dan ini adalah hasilnya di YouTube

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

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

  1. gunakan Komposer untuk mengunduh PHPMailer dan secara otomatis membuat file pemuat otomatis;
  2. unduh kode sumber PHPMailer secara manual dan sertakan sendiri file yang diperlukan

 

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

 

  1. pertama, pastikan Anda sudah menginstal lingkungan pengembangan web (XAMPP, WAMP, EasyPHP dll. ) karena Komposer membutuhkan PHP yang dapat dieksekusi agar berfungsi;
  2. download file penginstalan Composer dari sini (di bagian “Windows Installer”) dan jalankan;
  3. ikuti petunjuk penginstalan, dan pastikan Anda dapat memilih PHP yang dapat dieksekusi

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

 

  1. setelah penginstalan selesai, Anda akan dapat menggunakan alat baris perintah Composer untuk menginstal PHPMailer

 

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

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

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 .

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'C:\xampp\composer\vendor\autoload.php';
$email = new PHPMailer(TRUE);
/* .. */

Menginstal Komposer dan PHPMailer di Linux

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

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

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 Komposer

Jika 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

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_

 

 

Menjaga agar PHPMailer tetap mutakhir

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


composer update

 

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.  

 

<?php
/* Namespace alias. */
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Include the Composer generated autoload.php file. */
require 'C:\xampp\composer\vendor\autoload.php';
/* If you installed PHPMailer without Composer do this instead: */
/*
require 'C:\PHPMailer\src\Exception.php';
require 'C:\PHPMailer\src\PHPMailer.php';
require 'C:\PHPMailer\src\SMTP.php';
*/
/* Create a new PHPMailer object. Passing TRUE to the constructor enables exceptions. */
$mail = new PHPMailer(TRUE);
/* Open the try/catch block. */
try {
   /* Set the mail sender. */
   $mail->setFrom('[email protected]', 'Darth Vader');
   /* Add a recipient. */
   $mail->addAddress('[email protected]', 'Emperor');
   /* Set the subject. */
   $mail->Subject = 'Force';
   /* Set the mail message body. */
   $mail->Body = 'There is a great disturbance in the Force.';
   /* Finally send the mail. */
   $mail->send();
}
catch (Exception $e)
{
   /* PHPMailer exception. */
   echo $e->errorMessage();
}
catch (\Exception $e)
{
   /* PHP exception (note the backslash to select the global namespace Exception class). */
   echo $e->getMessage();
}

   

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.

 

<?php
/* Namespace alias (don't need Exception this time). */
use PHPMailer\PHPMailer\PHPMailer;
/* Include the Composer generated autoload.php file. */
require 'C:\xampp\composer\vendor\autoload.php';
/* Create a new PHPMailer object. */
$mail = new PHPMailer();
/* Set the mail sender. */
$mail->setFrom('[email protected]', 'Darth Vader');
/* Add a recipient. */
$mail->addAddress('[email protected]', 'Emperor');
/* Set the subject. */
$mail->Subject = 'Force';
/* Set the mail message body. */
$mail->Body = 'There is a great disturbance in the Force.';
/* Finally send the mail. */
if (!$mail->send())
{
   /* PHPMailer error. */
   echo $mail->ErrorInfo;
}
_

Sangat menarik untuk melihat bagaimana skrip ini akan terlihat jika Anda menggunakan fungsi mail()

 

<?php
$from = 'Darth Vader <[email protected]>';
$to = 'Emperor <[email protected]>';
$subject = 'Force';
$message = 'There is a great disturbance in the Force.';
$headers = 'From: ' . $from;
 
if (!mail($to, $subject, $message, $headers))
{
    echo "Error.";
}
else
{
    echo "Message sent.";
}

 

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

 

  • Tetapkan pengirim (“Dari. ") alamat

    Ini mungkin hal pertama yang ingin Anda lakukan. Metode ini mengambil alamat pengirim sebagai parameter pertama, sedangkan parameter kedua adalah opsional dan menetapkan nama pengirim seperti yang akan dilihat oleh penerima.


$mail->setFrom('[email protected]', 'Darth Vader');
_

 

  • Tambahkan penerima (“Ke. ") alamat

    Ini adalah hal kedua yang ingin Anda lakukan 🙂
    Seperti pengirim, parameter kedua bersifat opsional dan menentukan nama penerima.


$mail->addAddress('[email protected]', 'Emperor');

 

  • Tetapkan subjek email


 $mail->Subject = 'Force';
_

 

  • Setel badan email (pesan sebenarnya)

    Badan pesan dapat menyertakan teks biasa dan kode HTML. Jika Anda ingin email Anda diuraikan sebagai HTML, pastikan untuk membaca poin berikutnya


$mail->Body = 'There is a great disturbance in the Force.';
_

 

  • Buat pesan email HTML
    Metode isHTML() menyetel tipe isi isi email ke HTML. Anda juga dapat menyertakan badan teks biasa alternatif untuk klien email yang tidak mendukung HTML atau yang dikonfigurasi untuk tidak menampilkan pesan HTML
    Sebaiknya selalu sertakan badan alternatif teks biasa untuk memastikan semua orang dapat membaca email Anda

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_0

 

  • Tambahkan lampiran
    Anda dapat melampirkan file ke email menggunakan fungsi addAttachment()
    Fungsi ini membutuhkan dua parameter. yang pertama adalah jalur file, dan yang kedua (opsional) adalah nama file yang akan dilihat oleh penerima. Jika tidak disetel, nama file yang sama dari file lokal akan digunakan
    Perhatikan bahwa file harus dapat dibaca oleh pengguna yang menjalankan skrip PHP (ini sangat penting di bawah sistem Linux)

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_1

 

  • Tetapkan alamat balasan-ke yang berbeda

    Anda dapat menentukan alamat mana yang akan dibalas oleh penerima saat membalas email Anda. Standarnya adalah pengirim (“From. ”), tetapi Anda dapat mengubahnya

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_2

 

  • Tambahkan penerima CC dan BCCSemua penerima CC (carbon-copy) dan BCC (blind carbon-copy) akan menerima email, tetapi alamat BCC tidak akan terlihat oleh penerima lain

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_3

 

  • Buat lampiran dari data biner
    Dengan PHPMailer Anda dapat membuat lampiran "virtual" dari a   aliran biner , seperti database . Ini berarti Anda tidak perlu menyimpan data ke file lokal sebelum mengirimkannya sebagai lampiran.

    Pada contoh di bawah ini, kami lampirkan dua file. yang pertama berisi data dari bidang SQL "gumpalan" (biner) dan diberi nama "db_data. db", yang kedua dibuat dari aliran jaringan (file PDF) dan diberi nama "file. pdf”

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_4

 

  • Buat pesan HTML dari string
    Metode msgHTML() secara otomatis membaca string HTML (atau file lokal, menggunakan file_get_contents() untuk membacanya) ke dalam pesan HTML tersemat. Parameter kedua memberi tahu fungsi di mana mencari gambar, sehingga dapat disertakan sebaris dalam pesan
    Perhatikan bahwa fungsi ini akan menimpa atribut Body dan AltBody

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_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

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_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

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_7

 

 

 

CONTOH VIDEO PRAKTIS

Mengapa 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 SMTP

Anda 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

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_8

 

 

LOKALISASI PESAN KESALAHAN

PHPMailer 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().  

 

<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
/* Exception class. */
require 'C:\PHPMailer\src\Exception.php';
/* The main PHPMailer class. */
require 'C:\PHPMailer\src\PHPMailer.php';
/* SMTP class, needed if you want to use SMTP. */
require 'C:\PHPMailer\src\SMTP.php';
$email = new PHPMailer(TRUE);
/* .. */
_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

 


composer update
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 DINONAKTIFKAN

Jika 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

 


composer update
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

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

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)

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

 

Sekarang yang perlu Anda lakukan adalah menggunakan string baru ini sebagai kata sandi dalam konfigurasi PHPMailer Anda (tanpa spasi, itu hanya untuk keterbacaan)

 


composer update
2

 

 

MENGGUNAKAN GMAIL DENGAN AUTENTIKASI XOAUTH2

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

 

Tipe tidak terdefinisi phpmailerphpmailerphpmailer intelephense 1009

 

 

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

  1. ID Klien
  2. Rahasia Klien
  3. dan Token Segarkan

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

  1. atur alias namespace untuk kelas PHPMailer OAuth dan liga Google;

     

  2. sertakan liga library (jika Anda menggunakan direktori instalasi Composer yang sama, maka file autoloader. file php akan menanganinya);

     

  3. atur zona waktu skrip ke UTC;

     

  4. atur atribut AuthType kelas PHPMailer ke "XOAUTH2";

     

  5. buat objek liga/Google dan objek PHPMailer/OAuth dengan string autentikasi yang Anda dapatkan di langkah sebelumnya dan gunakan untuk proses autentikasi

 

Dalam contoh terakhir ini Anda dapat melihat bagaimana hal ini dilakukan.  

 


composer update
_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