mirror of
https://github.com/opdavies/gmail-filter-builder.git
synced 2025-11-11 12:58:45 +00:00
PHP library for generating importable Gmail filters in XML
| bin | ||
| config | ||
| src | ||
| tests/Unit | ||
| .gitignore | ||
| .php_cs.dist | ||
| .travis.yml | ||
| composer.json | ||
| LICENSE | ||
| phpunit.xml.dist | ||
| README.md | ||
Gmail Filter Builder
This library allows you to define Gmail filters in PHP, and then generate XML that you can import into Gmail's filter settings
Inspired by https://github.com/antifuchs/gmail-britta.
Installation and Basic Usage
Step 1: Require the Library
composer require opdavies/gmail-filter-builder
Step 2: Create Your Filters File
Create a filters.php file that returns an array of Filter objects.
For example:
<?php
require_once __DIR__.'/vendor/autoload.php';
return [
// Add your filters.
];
Step 3: Generate the XML
Run ./vendor/bin/generate-filters to generate the XML for the filters and export it into a file.
Options
--input-file- specify the name of the file containing the filters (defaults tofilters.php).--output-file- specify the name of the output file (defaults tofilters.xml).
Step 4: Import the Filters
Log in to your Gmail account and import your filters using the generated XML file.
Available Methods
Conditions
Conditions that a message must satisfy for the filter to be applied:
has- can be used to check for various properties, such as attachments, stars or labels. Can also be used as an alternative to some of the following methods previously - e.g.from:john@example.com- and can be useful for more advanced queries.hasNot- the opposite of the above.from- if the message is from a certain name or email address.to- if the message is to a certain name or email address.subject- if the message has a certain subject.hasAttachment- if the message has an attachment.excludeChats- exclude chats from the results (false by default).
Actions
Actions you can apply to messages that match the conditions:
label- add a label to the message.archive- archive the message (skip the inbox).labelAndArchive- both add a label and archive the message.spam- mark the message as spam.neverSpam- never mark the message as spam.trash- delete the message.read- mark the message as read.star- star the message.forward- forward the message to another email address.important- mark the message as important.notImportant- mark the message as not important.categorise- apply a smart label to the message.
Filter Examples
// If an email is from a certain address, add a label.
Filter::create()
->from('john@example.com')
->label('Something');