Email Event Parser
Easily parse event data from a variety of email service providers. Currently supports SendGrid and Mailgun webhook formats., (*1)
Installation
composer require stechstudio/email-event-parser
Basic usage
When you know where the event is coming from, you can create the adapter yourself:, (*2)
$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., (*3)
Automatic service detection
If you are expecting webhooks from multiple service providers, you can use the automatic detection:, (*4)
$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., (*5)
API
Once you have an event object, here is a list of methods that are available:, (*6)
| 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 |