iagofelicio/laravel-gmail-oauth2

Send emails with Gmail OAuth2 credentials instead of SMTP default access information
5,806 6
Install
composer require iagofelicio/laravel-gmail-oauth2
Latest Version:2.0.5
PHP:>=8.0
License:MIT
Last Updated:Apr 15, 2024
Links: GitHub  ·  Packagist
Maintainer: Iagofelicio

Send emails with Gmail OAuth2 credentials

Latest Version on Packagist Total Downloads

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

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.

Related Packages

cmarfil/pending-migration-advisor

Laravel pending migrations advisor.

411 7
doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

637,827,751 9,703
laravel/framework

The Laravel Framework.

589,172,971 34,950
laravel/tinker

Powerful REPL for the Laravel framework.

498,216,183 7,442
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

413,412,504 609

Version History

Version Released PHP Laravel License
2.0.5 >=8.0 ^7|^8|^9 MIT
2.0.4 >=8.0 >=8.0 MIT
2.0.3 >=8.0 >=8.0 MIT
2.0.2 >=8.0 >=8.0 MIT
2.0.1 >=8.0 ^8.0 MIT