PHPackages                             humaninitiative/yii2-graph-mailer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. humaninitiative/yii2-graph-mailer

ActiveYii2-extension[Mail &amp; Notifications](/categories/mail)

humaninitiative/yii2-graph-mailer
=================================

A Yii2 component to send emails using Microsoft Graph Mailer.

026PHP

Since Feb 11Pushed 3mo agoCompare

[ Source](https://github.com/HumanInitiative/yii2-graph-mailer)[ Packagist](https://packagist.org/packages/humaninitiative/yii2-graph-mailer)[ RSS](/packages/humaninitiative-yii2-graph-mailer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

Yii2 Graph Mailer
=================

[](#yii2-graph-mailer)

Ini adalah komponen untuk mengirim email menggunakan Microsoft Graph API [sendMail](https://learn.microsoft.com/en-us/graph/api/user-sendmail?view=graph-rest-1.0&tabs=http).

Instalasi
---------

[](#instalasi)

### 1. Install via Composer

[](#1-install-via-composer)

```
composer require humaninitiative/yii2-graph-mailer:"dev-master"
```

### 2. Register App

[](#2-register-app)

Untuk mendapatkan credential OAuth2 (Client ID dan Client Secret).

1. Login ke [Portal Azure ](https://portal.azure.com) atau [Entra Admin](https://entra.microsoft.com)
2. Pilih **App registrations** &gt; **New registration**
3. Isi form:
    - **Name** : Contoh "Yii2 Send Mailer"
    - **Supported account types** : Pilih "Accounts in this organizational directory only" untuk aplikasi internal
4. Klik **Register**
5. Simpan **Application (client) ID** dan **Directory (tenant) ID**
6. Buka tab **Certificates &amp; secrets**
7. Klik **New client secret**
    - Isi deskripsi, misalnya "secret mail"
    - Pilih durasi expires (misalnya 12 months)
    - Klik **Add**
8. Copy **Value** dari client secret tersebut. Ini hanya ditampilkan sekali.
9. 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

[](#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

[](#4-contoh-penggunaan)

```
Yii::$app->graphMailer->compose()
	->setFrom($_ENV['OUTLOOK_EMAIL'])
        ->setTo('test@test.com')
        ->setSubject('test')
        ->setHtmlBody('test pengiriman email via graph api')
	->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();

```

###  Health Score

20

—

LowBetter than 14% of packages

Maintenance55

Moderate activity, may be stable

Popularity6

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity12

Early-stage or recently created project

 Bus Factor1

Top contributor holds 91.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/131ced7eff9bd028dcf1d2b3ed34d1b82e98e2c06a76014dc4d7e361da411940?d=identicon)[arifinm](/maintainers/arifinm)

---

Top Contributors

[![arifinm](https://avatars.githubusercontent.com/u/19162713?v=4)](https://github.com/arifinm "arifinm (11 commits)")[![ardinada](https://avatars.githubusercontent.com/u/37607428?v=4)](https://github.com/ardinada "ardinada (1 commits)")

### Embed Badge

![Health badge](/badges/humaninitiative-yii2-graph-mailer/health.svg)

```
[![Health](https://phpackages.com/badges/humaninitiative-yii2-graph-mailer/health.svg)](https://phpackages.com/packages/humaninitiative-yii2-graph-mailer)
```

###  Alternatives

[tijsverkoyen/css-to-inline-styles

CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.

5.8k505.3M227](/packages/tijsverkoyen-css-to-inline-styles)[minishlink/web-push

Web Push library for PHP

1.9k12.0M53](/packages/minishlink-web-push)[laravel-notification-channels/twilio

Provides Twilio notification channel for Laravel

2587.7M12](/packages/laravel-notification-channels-twilio)[spatie/url-signer

Generate a url with an expiration date and signature to prevent unauthorized access

4422.3M16](/packages/spatie-url-signer)[mattketmo/email-checker

Throwaway email detection library

2742.0M5](/packages/mattketmo-email-checker)[laravel-notification-channels/discord

Laravel notification driver for Discord.

2371.3M11](/packages/laravel-notification-channels-discord)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
