humaninitiative/yii2-graph-mailer
Composer 安装命令:
composer require humaninitiative/yii2-graph-mailer
包简介
A Yii2 component to send emails using Microsoft Graph Mailer.
README 文档
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->graphMailer->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();
统计信息
- 总下载量: 30
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-11-23