⚡ Receive notifications via webhooks
⚡ Save events in MySQL / PostgreSQL / SQLite
⚡ Handle repeated abuses on the application-side before sending transactional emails to a fake/bad email address
Version: 0.1.1
Message type | Supported |
---|---|
Transactional | ✅ |
Inbound | ❌ |
Broadcasts | ❌ |
- You need a MySQL / PostgreSQL instance, or you can use SQLite
- Download the binary
go install github.com/pilinux/postmark@latest
- Create a free project on Sentry to track errors
- Choose
Go
as the platform - Save the
DNS
(format:https://secret_code@abc.ingest.sentry.io/secret_number
)
- Choose
- Change the filename from
.env.sample
to.env
- Update the following variables in the
.env
file (DO NOT DELETE other non-used variables)APP_PORT
SentryDSN
USERNAME
PASSWORD
DBDRIVER
DBUSER
DBPASS
DBNAME
DBHOST
DBPORT
DBTIMEZONE
- Execute the binary file. It will automatically create a new table
postmark_outbounds
and migrate the database. - On Postmark,
- select your server and browse the
transactional
message stream - select
Add webhook
- add the following information:
- Webhook URL:
http(s)://<your_ip_or_domain:port>/webhooks/v1/outbound-events
If you run the application behind a reverse proxy (NGINX / Apache) and configure a domain, then the URL will behttp(s)://<your_domain>/webhooks/v1/outbound-events
- add
Basic auth credentials
- select the events Postmark should forward to your server
- Webhook URL:
- select your server and browse the
Name | Comment |
---|---|
id |
primary key |
created_at |
data creation time in the database |
updated_at |
|
deleted_at |
|
record_type |
Delivery / Bounce / SpamComplaint / Open / Click / SubscriptionChange |
type |
HardBounce / SpamComplaint |
type_code |
1 (for bounce) / 100001 (for spam complaint) / 0 (others) |
message_id |
Postmark message ID |
tag |
user-defined tag |
from |
from email |
to |
destination email |
event_at |
timestamp from Postmark |
server_id |
Postmark server ID |
© piLinux 2022
Released under the MIT license
This project is built with GoREST.