iagofelicio / laravel-gmail-oauth2
Send emails with Gmail OAuth2 credentials instead of SMTP default access information
Requires
- php: >=8.0
- illuminate/support: ^7|^8|^9
- league/oauth2-google: ^4.0
- phpmailer/phpmailer: ^6.9
Requires (Dev)
- orchestra/testbench: ^6.7
- phpunit/phpunit: ^9.5
README
This Laravel package allows you to send emails securely using Gmail OAuth2 credentials, eliminating the need to store sensitive information like username and password in your application configuration.
Support us
This package is actively maintained and free to use. If you find it helpful, consider giving back by:
- Reporting any issues or suggesting improvements through GitHub issues.
- Contributing code or documentation changes via pull requests.
- Leaving a star on the repository to show your appreciation. Your support helps keep this project alive and thriving!
- Supporting me on Ko-fi
Installation
You can install the package via composer:
For PHP 8 and Laravel 9:
composer require iagofelicio/laravel-gmail-oauth2
For PHP 7 and Laravel 7/8:
composer require iagofelicio/laravel-gmail-oauth2:1.0.4
Gmail Credentials
To obtain a Gmail OAuth2 refresh token, you can refer to the instructions provided by the PHPMailer package on Github https://github.com/PHPMailer.
For detailed instructions on generating a Gmail OAuth2 refresh token, we recommend following the excellent tutorial provided by Coding Yet https://www.codingyet.com/how-to-use-phpmailer-with-xoauth2/.
This tutorial walks you through the process step-by-step, ensuring a smooth setup for your secure email sending.
Usage
(Step 1) For PHP 7 and Laravel 7/8:
Edit config/mail.php
adding the following line:
return [ 'driver' => 'gmail', // Default code ... ];
(Step 1) For PHP 8 and Laravel 9:
Edit config/mail.php
adding the following mailer:
return [ 'mailers' => [ // Default code ... 'gmail' => [ 'transport' => 'gmail', ], ] ];
Edit the MAIL_MAILER in .env
file:
MAIL_MAILER=gmail
(Step 2) For Laravel 7, 8 and 9:
Add your Gmail credentials in .env
file:
GMAIL_API_CLIENT_ID="your-api-client-id" GMAIL_API_CLIENT_SECRET="your-api-client-secret" GMAIL_API_CLIENT_REFRESH_TOKEN="your-api-client-refresh-token" GMAIL_API_CLIENT_MAIL="your-api-client-email" # Suggested default settings to include MAIL_FROM_ADDRESS="from@mail.com" MAIL_FROM_NAME="${APP_NAME}"
Testing
Pending development.
composer test
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
License
The MIT License (MIT). Please see License File for more information.