Postmark
Postmark is an email service you can use as the team's own mail server. It receives your team's mail and hands it to Jelly, and it sends your replies. It works wherever your domain is hosted.
It's also the only route that tells you what happened to a reply after it left: whether it was delivered, bounced or marked as spam. In return it takes more setting up than the other routes, and you need a Postmark account.
Setting up Postmark
You'll go back and forth between Postmark and Settings → Connections → Postmark in Jelly, so it helps to have both open.
- In Postmark, create a server for your team.
- In Jelly, go to Settings → Connections → Postmark and copy the Inbound webhook URL. (A webhook is the address Postmark sends each new message to.)
- In Postmark, open the server's inbound settings. Paste the URL as the inbound webhook, and switch on "include raw email content". Jelly can't accept mail that arrives without it.
- In Jelly, copy the Delivery webhook URL.
- In Postmark, add a webhook to the server's outbound messages with that URL, and choose the delivery, bounce and spam complaint events.
- In Postmark, copy the server's token from its API Tokens tab. In Jelly, paste it into Server token and press Save Postmark settings. The line under Server token then says A token is saved. Jelly never shows the token again.
- Confirm your domain with Postmark. In Postmark, add your domain under Sender Signatures, or add a signature for each address you send from, and follow Postmark's steps. Postmark won't send from an address it hasn't confirmed. Deliverability explains the records it asks for.
- Send your mail to Postmark. Postmark gives the server its own
inbound address, shown on the server's inbound settings page.
Forward your existing mailbox to it. If you manage your domain's
settings (its DNS), you can instead point the mail (MX) records of
a subdomain, such as
help.yourcompany.com, at Postmark. - Add your team's addresses on Addresses, or with the email setup. Each one shows via Postmark.
If you forward from Gmail, Google first sends a message asking you to confirm the forwarding. It arrives in the Jelly inbox like any other message: open it and follow Google's link.
To check everything works, send a message to the address from your own email and watch for it in the inbox. Then write a new message from the address to yourself. Once Jelly has seen mail arrive and leave, it marks the address Verified.
Treat both webhook URLs as passwords. The secret at the end of each one is all that proves a message came from your Postmark server, and it can't be changed in Jelly.
Once Postmark is set up
A team has one Postmark server, and it becomes the fallback for the whole team. Any address that doesn't receive through a Google account, an IMAP account or forwarding shows as receiving through Postmark, and that includes addresses that send through an SMTP server.
Jelly doesn't test the token when you save it, so a wrong one only shows up the first time someone sends. The reply stays as a draft, with a reason that starts "Postmark answered 401". To replace the token, paste the new one into Server token and save. If you leave the field blank, the saved token is kept.
Whenever Postmark refuses a reply, Jelly keeps it as a draft and shows Postmark's reason: "Postmark answered …". The usual causes are a From address Postmark hasn't confirmed, or a recipient on Postmark's suppression list.
Delivery reports
With the delivery webhook in place, each reply sent through Postmark shows what happened to it: Delivered, Bounced, Delayed, Blocked, Marked as spam or Unsubscribed. Did it arrive? explains each one, and who's told about a problem.
When mail goes missing
If Settings → Connections → Postmark shows the warning This Postmark server is not set up correctly, Postmark has been sending messages without their raw content. Jelly has to refuse those, so they never reached the inbox. The warning says how many were refused, and when.
To fix it, switch on "include raw email content" in the server's inbound settings in Postmark. The warning clears when the next message arrives complete. The refused messages aren't in Jelly, but you can still read them in the server's inbound activity in Postmark.
Advanced details
Jelly sends on the server's default outbound stream (outbound), the
one for transactional mail.
This is how Postmark's reports appear in Jelly:
| Postmark reports | Jelly shows |
|---|---|
| Delivery | Delivered |
| Hard bounce, bad email address | Bounced |
| Soft bounce, transient, DNS error | Delayed |
| Blocked, DMARC policy, spam notification | Blocked |
| Spam complaint | Marked as spam |
| Unsubscribe | Unsubscribed |
Jelly ignores Postmark's other reports, including opens and clicks.