Mailer
Adalah library untuk memungkinkan aplikasi mengirim email. Library ini di test dengan sender menggunakan akun google.
Instalasi
Jalankan perintah di bawah di folder aplikasi:
mim app install lib-mailer
Konfigurasi
Module ini membutuhkan tambahan konfigurasi pada level aplikasi sebagai berikuta:
return [
// ...
'libMailer' => [
'SMTP' => true,
'Host' => 'smtp.gmail.com',
'SMTPAuth' => true,
'Username' => 'mail@gmail.com',
'Password' => '/secret/',
'SMTPSecure' => 'tls',
'Port' => 587,
'FromEmail' => 'mail@gmail.com',
'FromName' => 'My Name'
]
// ...
];
Penggunaan
Module ini menambahkan satu library dengan nama LibMailer\Library\Mailer
yang
bisa digunakan untuk mengirim email. Library ini memiliki method sebagai berikut:
send(array $options): bool
Contoh cara mengirim email dengan library ini adalah sebagai berikut:
use LibMailer\Library\Mailer;
$options = [
'to' => [
[
'name' => 'User One',
'email' => 'user.one@gmail.com',
'cc' => [ // optional
[
'name' => 'user One One',
'email' => 'user.one.one@gmail.com'
]
],
'bcc' => [ // optional
[
'name' => 'user One Two',
'email' => 'user.one.two@gmail.com'
]
]
],
[ // optional
'name' => 'User Two',
'email' => 'user.two@gmail.com'
]
],
'subject' => 'Welcome to the club',
'attachment' => [ // optional
[
'file' => '/absolute/path/to/file.ext',
'name' => 'file.ext'
]
],
'text' => '/Optional text if property view is not set/',
'view' => [ // optional
'path' => 'path/to/view',
'params' => [ // optional
'additional' => 'data',
'to' => 'forward to',
'view' => 'renderer'
]
]
];
if(!Mailer::send($options))
die(Mailer::getError());
Keterangan masing-masing properti adalah sebagai berikut:
to
Array list penerima email, nilai ini juga akan diteruskan ke view jika menggunakan view renderer. Masing-masing penerima harus memiliki propertiemail
danname
. Properti ini juga menerima tambahan sub-properi sebagai berikut:cc
Properti ini adalah array yang berisi daftar penerima sebagai cc.bcc
Properti ini adalah array yang berisi daftar penerima sebagai bcc.
subject
String email subject, nilai ini menerima parameter seperti(:email)
yang akan di ganti dengan nilai to.email.attachment
Adalah array daftar file yang akan dikirimkan bersamaan dengan email. Masing-masing file yang akan disisipkan harus memiliki profilefile
yang adalah absolute path ke file yang akan dikirim, danname
yang adalah nama file.text
Konten body email jika email reader user tidak mendukung html. Nilai dari properti ini juga yang akan digunakan sebagai body email jika propertiview
tidak di set.-
view
Adalah array yang berisi informasi view yang akan di render untuk membuat body html email. Properti ini memiliki dua sub properti, yaitu:path
Path ke view file tanpa extensi.params
Parameter key-value pair yang akan dikirim ke renderer view.
getError(): ?string
License
Module ini menggunakan class PHPMailer. Silahkan mengacu pada external class tersebut untuk lisensi.