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 |