Show HN: I got tired of granting mailbox access to trigger workflows by email

axtg1 pts1 comments

Inbound Email to Webhook — EU-Hosted Email Processing | EmailConnect.eu

Inbound email processing Inbound email, parsed and delivered<br>We handle the mail server, spam filtering, and parsing — you get clean JSON at your webhook.<br>Start free Try it live<br>100 emails/month free — no credit card<br>GDPR compliant 100% EU-hosted

Inbound emails<br>returns@<br>Customer returns

support@<br>Auto-ticketing

invoices@<br>Smart filing

Parse · Route · Deliver<br>Structured JSON + Webhooks

Your endpoints<br>Returns API<br>Labels generated

Issue tracker<br>Tickets created

Doc storage<br>Filed & organized

Webhook payload Pristine data, every field accounted for<br>No guesswork, no half-parsed HTML. Every email becomes a structured JSON payload with sender info, content in multiple formats, attachments, spam scoring, and much more.

POST /your-webhook — 200 OK<br>"message": {<br>"sender": {<br>"name": "Alice Martin",<br>"email": "alice@acme.com"<br>},<br>"recipient": "invoices@yourcompany.com",<br>"subject": "Invoice #1042 — February 2026",<br>"content": {<br>"text": "Hi, please find the invoice attached...",<br>"html": "Hi, please find the invoice...",<br>"markdown": "Hi, please find the invoice attached...",<br>"links": [<br>{ "url": "https://acme.com/pay/1042", "text": "Pay now" }<br>},<br>"attachments": [<br>"filename": "invoice-1042.pdf",<br>"contentType": "application/pdf",<br>"size": 48210,<br>"downloadUrl": "https://files.emailconnect.eu/d/...",<br>"virusScan": {<br>"status": "clean",<br>},<br>"spam": {<br>"isSpam": false,<br>"score": 0.2,<br>"authentication": {<br>"dkim": { "result": "pass" },<br>"spf": { "result": "pass" },<br>"dmarc": { "result": "pass" }<br>},<br>"integrity": {<br>"signature": "sha256=9f86d08..."

Three content formats<br>Every email body delivered as plain text, raw HTML, and cleaned Markdown. Use whichever fits your pipeline.<br>Read more

Attachments, handled<br>Small text files inline as base64. Larger files offloaded to EU-hosted S3 with direct download URLs. Up to 10 MB.<br>Read more

Verified at every layerMaker+<br>Spam analysis, DKIM, SPF, and DMARC results included so you can filter and trust incoming e-mail.<br>Read more

Virus scanned attachmentsBusiness+<br>Every attachment scanned by ClamAV before delivery. Infected files are rejected and flagged in the payload.<br>Read more

Build your own payloadBusiness+<br>Pick exactly which fields you need. Strip what you don't. Per-alias payload configuration for complete control.<br>Read more

Data residency modePlatform<br>E-mail is processed in your chosen region or on-premise. We store routing metadata only — not content.<br>Read more

Need anything? We're one email away.

Start free Full payload reference

How it works From mailbox to webhook in milliseconds<br>Every email passes through the same pipeline: receive, verify, parse, deliver. You configure the endpoint — we handle everything in between.

Email arrives<br>SMTP received on EU infrastructure

Spam & virus filtered<br>Score calculated, attachments scanned

Authenticated<br>DKIM, SPF, DMARC verified

Parsed to JSON<br>Body, links, attachments extracted

Webhook delivered<br>HMAC-signed POST to your endpoint

Email arrives<br>SMTP received on EU infrastructure

Spam & virus filtered<br>Score calculated, attachments scanned

Authenticated<br>DKIM, SPF, DMARC verified

Parsed to JSON<br>Body, links, attachments extracted

Webhook delivered<br>HMAC-signed POST to your endpoint

Start free Learn how it works

Each alias, a different endpoint<br>support@ routes to your ticketing system. invoices@ hits your accounting API. leads@ feeds your CRM. One domain, unlimited workflows.

Interactive demoWatch your email become data<br>Generate a test address, send an email, and watch the webhook payload appear instantly.

EmailConnect demo

Inbox<br>New test inbox

Start your live demo<br>Click "New test inbox" to generate a temporary email address

Instant processing<br>We don't spam<br>100% EU data residency

Integration If it can receive a POST, it works<br>Webhook handlers in any language, no-code platforms, or direct API access. Pick whichever fits your stack.

CodeNo-codeAPI<br>Node.jsPythonLaravel<br>// Express webhook handler (Standard Webhooks)<br>import express from 'express'<br>import crypto from 'crypto'

app.post('/webhook', (req, res) => {<br>// Verify Standard Webhooks signature<br>const { 'webhook-id': id, 'webhook-timestamp': ts, 'webhook-signature': sigs } = req.headers<br>const secret = Buffer.from(process.env.WEBHOOK_SECRET.replace(/^whsec_/, ''), 'base64')<br>const expected = crypto.createHmac('sha256', secret)<br>.update(`${id}.${ts}.${req.rawBody}`).digest('base64')

const valid = sigs.split(' ').some(s => s === `v1,${expected}`)<br>if (!valid) return res.status(401).end()

const { message } = req.body<br>console.log(`From: ${message.sender.email}`)<br>console.log(`Subject: ${message.subject}`)

res.status(200).json({ received: true })<br>})# Flask webhook handler (Standard Webhooks)<br>import hmac, hashlib, base64<br>from flask import Flask, request, jsonify

app = Flask(__name__)

@app.route('/webhook', methods=['POST'])<br>def handle_webhook():<br># Verify Standard Webhooks signature<br>msg_id = request.headers.get('webhook-id')<br>ts =...

webhook email spam attachments json payload

Related Articles