gmail-filter-builder/README.md

89 lines
2.7 KiB
Markdown
Raw Normal View History

2018-01-04 07:38:32 +00:00
# Gmail Filter Builder
2018-01-04 07:43:34 +00:00
2018-05-31 20:31:32 +00:00
[![Build Status](https://travis-ci.org/opdavies/gmail-filter-builder.svg?branch=master)](https://travis-ci.org/opdavies/gmail-filter-builder)
2018-01-15 21:18:46 +00:00
2018-01-04 07:43:34 +00:00
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.
2018-01-04 22:30:35 +00:00
## Installation and Basic Usage
### Step 1: Require the Library
```bash
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
<?php
2018-01-15 21:21:28 +00:00
require_once __DIR__.'/vendor/autoload.php';
2018-01-04 22:30:35 +00:00
2018-08-07 07:17:43 +00:00
return [
// Add your filters.
];
2018-01-04 22:30:35 +00:00
```
### Step 3: Generate the XML
2018-08-07 07:18:10 +00:00
Run `composer generate` to generate the XML for the filters and export it into a file.
2018-01-15 21:21:28 +00:00
#### Options
- `--input-file` - specify the name of the file containing the filters (defaults to `filters.php`).
- `--output-file` - specify the name of the output file (defaults to `filters.xml`).
2018-01-04 22:30:35 +00:00
### 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
```php
// If an email is from a certain address, add a label.
Filter::create()
->from('john@example.com')
->label('Something');
```
## References
- [Search operators you can use with Gmail](https://support.google.com/mail/answer/7190?hl=en)