humaninitiative / yii2-graph-mailer
A Yii2 component to send emails using Microsoft Graph Mailer.
Installs: 9
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:yii2-extension
pkg:composer/humaninitiative/yii2-graph-mailer
Requires
- php: >=7.4
- humaninitiative/msgraph: dev-master
- yiisoft/yii2: ^2.0.45
This package is auto-updated.
Last update: 2025-11-23 22:23:53 UTC
README
Ini adalah komponen untuk mengirim email menggunakan Microsoft Graph API sendMail.
Instalasi
1. Install via Composer
composer require humaninitiative/yii2-graph-mailer:"dev-master"
2. Register App
Untuk mendapatkan credential OAuth2 (Client ID dan Client Secret).
- Login ke Portal Azure atau Entra Admin
- Pilih App registrations > New registration
- Isi form:
- Name : Contoh "Yii2 Send Mailer"
- Supported account types : Pilih "Accounts in this organizational directory only" untuk aplikasi internal
- Klik Register
- Simpan Application (client) ID dan Directory (tenant) ID
- Buka tab Certificates & secrets
- Klik New client secret
- Isi deskripsi, misalnya "secret mail"
- Pilih durasi expires (misalnya 12 months)
- Klik Add
- Copy Value dari client secret tersebut. Ini hanya ditampilkan sekali.
- Buka tab API permissions
- Klik Add a permission.
- Pilih Microsoft Graph
- Pilih Application permissions
- Cari dan centang
Mail.Send - Klik Add permissions
- Jangan lupa Klik tombol Grant admin consent dan konfirmasi
3. Config Aplikasi
Tambahkan pada .env :
OUTLOOK_TENANT_ID="TENANT_ID"
OUTLOOK_CLIENT_ID="CLIENT_ID"
OUTLOOK_CLIENT_SECRET="CLIENT_SECRET"
OUTLOOK_EMAIL="FROM_EMAIL"
Lalu tambahkan pada config/web.php :
'components' => [
'graphMailer' => [
'class' => 'humaninitiative\graph\mailer\GraphMailer',
'tenantId' => $_ENV['OUTLOOK_TENANT_ID'],
'clientId' => $_ENV['OUTLOOK_CLIENT_ID'],
'clientSecret' => $_ENV['OUTLOOK_CLIENT_SECRET'],
'email' => $_ENV['OUTLOOK_EMAIL'],
],
],
// Jika ingin menggunakan API untuk digunakan aplikasi lain
'as access' => [
'allowActions' => [
'email/send',
],
],
'controllerMap' => [
'email' => [
'class' => 'humaninitiative\graph\mailer\controllers\EmailController',
],
],
4. Contoh Penggunaan
Yii::$app->graphMailer->compose()
->setFrom($_ENV['OUTLOOK_EMAIL'])
->setTo('test@test.com')
->setSubject('test')
->setHtmlBody('<p>test pengiriman email via graph api</p>')
->setCc('cc@test.com')
->setReplyTo('replyTo@test.com')
->attach($file->tempName, ['fileName' => $file->name])
->send();
atau compose dari file html
Yii::$app->mailer->compose('file-html', ['model'=>$model])
->setFrom($_ENV['OUTLOOK_EMAIL'])
->setTo('test@test.com')
->setSubject('test')
->setCc('cc@test.com')
->setReplyTo('replyTo@test.com')
->attach($file->tempName, ['fileName' => $file->name])
->send();