rpurinton / gmail
A Gmail Library for PHP
Installs: 51
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/rpurinton/gmail
Requires
- rpurinton/config: ^1.0.25
- rpurinton/https: ^1.0.26
This package is auto-updated.
Last update: 2025-10-21 17:04:23 UTC
README
Introduction
The RPurinton Gmail Library is a PHP library designed to facilitate interaction with Gmail using Google's API. It provides functionality for sending, receiving, and managing Gmail messages efficiently.
Installation
Composer Installation
To install the library, use Composer:
composer require rpurinton/gmail
Configuration Setup
- Create a configdirectory at the same level as thevendordirectory.
- Place the Gmail.jsonfile with your credentials in theconfigdirectory.- Note: The access_token,refresh_token, andexpires_atwill be added later by the library.
 
- Note: The 
Google Cloud Project Setup
- Create a Google Cloud project.
- Enable the Gmail API.
- Create OAuth 2.0 credentials.
- Download the credentials JSON file and place it in the configdirectory asGmail.json.
Usage
Initialization
- Create a new instance of the Gmailclass.
- Run the ->init()method to start the OAuth2 authentication flow.
- This method will redirect to Google for authentication and back to your script with the authorization code.
- The init()method is crucial for the first-time setup to obtain theaccess_tokenandrefresh_token.
- These tokens are stored in the Gmail.jsonconfiguration file.
- Once the tokens are obtained, the init()method is not required again unless the user deauthorizes the app from their Gmail account.
API Methods
- send(): Send an email with optional attachments, CC, and BCC.
- list(): List messages based on a query and maximum results.
- read(): Retrieve a specific message by ID.
- delete(): Delete messages in batch.
- getAttachmentIds(): Retrieve attachment IDs from a message.
Examples
<?php require 'vendor/autoload.php'; use RPurinton\Gmail\Gmail; $gmail = new Gmail(); $gmail->init(); // Only needed for the first-time setup // Example to send an email $gmail->send('from@example.com', ['to@example.com'], 'Subject', 'Email body');
Troubleshooting
- Ensure that the Gmail.jsonfile is correctly configured and accessible.
- Verify that the Google Cloud project is set up with the correct credentials and permissions.
- If you encounter issues with token expiration, ensure the refresh_tokenis valid and theinit()method was successfully executed initially.
License
This library is licensed under the MIT License. See the LICENSE file for more information.