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:

  1. to
    Array list penerima email, nilai ini juga akan diteruskan ke view jika menggunakan view renderer. Masing-masing penerima harus memiliki properti email dan name. Properti ini juga menerima tambahan sub-properi sebagai berikut:
    1. cc
      Properti ini adalah array yang berisi daftar penerima sebagai cc.
    2. bcc
      Properti ini adalah array yang berisi daftar penerima sebagai bcc.
  2. subject
    String email subject, nilai ini menerima parameter seperti (:email) yang akan di ganti dengan nilai to.email.
  3. attachment
    Adalah array daftar file yang akan dikirimkan bersamaan dengan email. Masing-masing file yang akan disisipkan harus memiliki profile file yang adalah absolute path ke file yang akan dikirim, dan name yang adalah nama file.
  4. text
    Konten body email jika email reader user tidak mendukung html. Nilai dari properti ini juga yang akan digunakan sebagai body email jika properti view tidak di set.
  5. view
    Adalah array yang berisi informasi view yang akan di render untuk membuat body html email. Properti ini memiliki dua sub properti, yaitu:

    1. path
      Path ke view file tanpa extensi.
    2. 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.