pioneeringtechlab / laravel-gmail-oauth-mailer
Gmail OAuth2 SMTP mail transport for Laravel 10, 11, and 12 using Symfony Mailer.
Package info
github.com/PioneeringTechLab/laravel-gmail-oauth-mailer
pkg:composer/pioneeringtechlab/laravel-gmail-oauth-mailer
v1.0.0
2026-07-02 05:00 UTC
Requires
- php: ^8.1
- google/apiclient: ^2.0
- illuminate/mail: ^10.0|^11.0|^12.0
- illuminate/support: ^10.0|^11.0|^12.0
README
Gmail OAuth2 SMTP XOAUTH2 mail transport for Laravel 10, 11, and 12 using Symfony Mailer.
Installation
Run the following command on your Laravel project root directory:
composer require pioneeringtechlab/laravel-gmail-oauth-mailer:^1.0
Publish config
php artisan vendor:publish --tag=gmail-oauth-mailer-config
Configure Laravel mailer
In config/mail.php, add a mailer:
'mailers' => [ // ... 'gmail-oauth' => [ 'transport' => 'gmail-oauth', ], ],
Environment variables
MAIL_MAILER=gmail-oauth MAIL_FROM_ADDRESS=youraddress@gmail.com MAIL_FROM_NAME="${APP_NAME}" GMAIL_OAUTH_EMAIL=youraddress@gmail.com GMAIL_OAUTH_CLIENT_ID=your-google-client-id GMAIL_OAUTH_CLIENT_SECRET=your-google-client-secret GMAIL_OAUTH_REFRESH_TOKEN=your-refresh-token GMAIL_OAUTH_SCOPE=https://mail.google.com/ GMAIL_OAUTH_HOST=smtp.gmail.com GMAIL_OAUTH_PORT=587 GMAIL_OAUTH_ENCRYPTION=tls
After editing env/config values:
php artisan config:clear
Notes
- For Gmail SMTP OAuth2, the usual scope is
https://mail.google.com/. - Port
587normally usesGMAIL_OAUTH_ENCRYPTION=tls. - Port
465normally usesGMAIL_OAUTH_ENCRYPTION=ssl. - This package refreshes the access token when Laravel creates the mail transport. It does not cache the access token.