Webhook Email Forwarder

A simple, elegant solution for debugging webhooks by forwarding them directly to your email

Version 1.0 | Made with ❤️ by Andy Dixon

Overview

This webhook service captures incoming HTTP requests and forwards complete request details (headers, body, metadata) to your specified email address.

Email Delivery

Receive webhook data directly in your inbox

Secure

Email validation and XSS protection built-in

Instant

Real-time webhook processing and forwarding

How It Works

  1. You configure a third-party service to send webhooks to this URL with your email encoded in the path
  2. When a webhook request arrives, the service captures all request data
  3. The complete request details are formatted into a readable HTML email
  4. The email is sent to your specified address
  5. A confirmation response is returned to the webhook sender
Perfect for: Debugging webhooks, testing integrations, monitoring API callbacks, and understanding third-party service payloads.

Usage

Basic URL Format

The URL format is simple - just append your URL-encoded email address to the domain:

https://wh.dixon.cx/{email-address}

URL Encoding Your Email

The @ symbol must be URL-encoded as %40:

Original Email
john@example.com
Webhook URL
wh.dixon.cx/john%40example.com

Example Requests

cURL - POST Request with JSON

curl -X POST https://wh.dixon.cx/test%40example.com \ -H "Content-Type: application/json" \ -d '{"event": "user.created", "user_id": 12345}'

cURL - GET Request with Parameters

curl https://wh.dixon.cx/test%40example.com?event=test&id=123

JavaScript - Fetch API

fetch('https://wh.dixon.cx/test%40example.com', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ event: 'order.completed', order_id: 'ORD-789', total: 99.99 }) });

Python - Requests Library

import requests response = requests.post( 'https://wh.dixon.cx/test%40example.com', json={'event': 'payment.received', 'amount': 250.00}, headers={'X-Custom-Header': 'MyValue'} ) print(response.text)
Important: Make sure to URL-encode your email address. Most programming languages and tools have built-in functions for this (e.g., encodeURIComponent() in JavaScript, urllib.parse.quote() in Python).

What to Expect

Immediate HTTP Response

When your webhook is successfully received, you'll get an immediate response:

HTTP 200 OK
Webhook received and forwarded to: test@example.com Request data: Array ( [event] => test [id] => 123 )

Email Contents

Within moments, you'll receive a styled HTML email containing:

Request Timestamp

Exact date and time when the webhook was received

Request Information

IP address, HTTP method (GET/POST/etc), and Content-Type

Request Headers

All HTTP headers sent with the request

Request Body

Complete raw body content (JSON, XML, form data, etc.)

PHP Variables

Parsed GET, POST, REQUEST, and FILES superglobals for easy access

Subject Line: Emails arrive with the subject "‼️ Webhook Request Received - [timestamp]" for easy filtering and identification.

Error Handling

Invalid Email Address

If the email address in the URL is invalid or missing, you'll receive:

HTTP 400 Bad Request
Invalid email address provided in URL path.
Validation: The service validates email addresses using PHP's built-in FILTER_VALIDATE_EMAIL filter to ensure proper formatting.

Security Features

Privacy Note: Anyone with your webhook URL can send data to your email address. Only use this service for testing and debugging purposes. Do not use for sensitive production data without additional authentication.

Supported Features

HTTP Methods
  • GET
  • POST
  • PUT
  • PATCH
  • DELETE
  • Any custom method
Content Types
  • application/json
  • application/x-www-form-urlencoded
  • multipart/form-data
  • text/plain
  • text/xml
  • Any custom content type

Common Use Cases

Debugging

See exactly what data third-party services are sending to your webhooks

Integration Testing

Test webhook integrations before implementing full handlers

Monitoring

Monitor webhook activity and payload changes over time

Documentation

Capture real examples for API documentation

Development

Quickly test webhook flows during development

Troubleshooting

Diagnose issues with webhook payloads and headers

Tips & Best Practices

Email Filtering

Create an email filter for the subject line "‼️ Webhook Request Received" to organize incoming webhooks in your inbox.

Use Plus Addressing

Use email plus addressing (e.g., yourname+github%40gmail.com) to track which services are sending webhooks.

Timestamp in Emails

Check the "Date Received" field in emails to verify webhook timing and debug delivery delays.

Parse the Body

The raw body section contains the exact payload - perfect for copying into your code for testing.

Quick Start

Get started in 3 simple steps:

1
Encode Your Email

Replace @ with %40 in your email address

2
Configure Webhook

Use wh.dixon.cx/{your-email} as the webhook URL

3
Check Your Inbox

Receive detailed webhook data instantly in your email

Try it now!
curl -X POST https://wh.dixon.cx/YOUR-EMAIL-HERE \ -d '{"test": "Hello World!"}'

Built with PHP and ADHD medication

© 2025-2026 Andy Dixon | wh.dixon.cx