https://github.com/stechstudio/email-event-parser
Parses event data from a variety of email service providers
https://github.com/stechstudio/email-event-parser
Last synced: 11 months ago
JSON representation
Parses event data from a variety of email service providers
- Host: GitHub
- URL: https://github.com/stechstudio/email-event-parser
- Owner: stechstudio
- Created: 2016-09-06T18:44:02.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2016-09-06T19:51:12.000Z (almost 10 years ago)
- Last Synced: 2025-04-02T14:27:14.652Z (about 1 year ago)
- Language: PHP
- Size: 28.3 KB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Email Event Parser
Easily parse event data from a variety of email service providers. Currently supports SendGrid and Mailgun webhook formats.
## Installation
```
composer require stechstudio/email-event-parser
```
## Basic usage
When you know where the event is coming from, you can create the adapter yourself:
```
$event = new \STS\EmailEventParser\EmailEvent(
new \STS\EmailEventParser\Adapters\MailgunWebhook($payload)
);
```
The adapter `$payload` should be an array of event data. It's up to you to `json_decode` this if needed. In some cases it might be appropriate to just pass in `$_POST` as the payload.
## Automatic service detection
If you are expecting webhooks from multiple service providers, you can use the automatic detection:
```
$event = \STS\EmailEventParser\EmailEvent::detect($payload);
```
This will examine the event data and figure out which service sent the event, and which adapter to use.
## API
Once you have an event object, here is a list of methods that are available:
| **Method** | **Description** |
| ---------- | --------------- |
| getType() | Event type (delivered, bounced, etc) |
| getService() | Service provider name (SendGrid, Mailgun) |
| getMessageId() | SMTP ID of the email |
| getRecipient() | Recipient email address |
| getTimestamp() | Unix timestamp for the event |
| getResponse() | Response from the remote SMTP server |
| getReason() | Additional explanation for the event type |
| getCode() | Status or error code |
| getTags() | Collection of tag values |
| getData() | Additional custom data attached to the email, as a collection of key/value pairs |
| get($key) | Retrieve any `$key` from the original event data payload |
| toArray() | Returns... ya know |