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 =...