Add README.md
This commit is contained in:
parent
aacf4b23ae
commit
50b6e7fa05
107
README.md
Normal file
107
README.md
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
# 📬 Email Webhook Receiver for ForwardEmail.net
|
||||||
|
|
||||||
|
This is a simple PHP webhook endpoint designed to receive incoming emails from [ForwardEmail.net](https://forwardemail.net). The script stores the raw email (`.eml`) files in a structured folder hierarchy and optionally triggers processing scripts per sender.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🚀 Features
|
||||||
|
|
||||||
|
- Accepts HTTP POST requests with raw email JSON data.
|
||||||
|
- Saves each email in a structured folder:
|
||||||
|
`data/emails/<sender-domain>/<sender-local>/`
|
||||||
|
- Supports **custom automation per sender**:
|
||||||
|
Automatically runs `index.sh` or `index.php` in the sender's folder if they exist.
|
||||||
|
- CLI-compatible for testing/debugging.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📁 Folder Structure
|
||||||
|
|
||||||
|
data/
|
||||||
|
└── emails/
|
||||||
|
└── example.com/
|
||||||
|
└── alice/
|
||||||
|
├── 65ef123e4c1a0.eml
|
||||||
|
├── index.php # optional
|
||||||
|
└── index.sh # optional
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ⚙️ Installation
|
||||||
|
|
||||||
|
1. Clone this repository:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/yourusername/email-webhook-receiver.git
|
||||||
|
cd email-webhook-receiver
|
||||||
|
|
||||||
|
2. Make sure data/emails/ is writable by your web server:
|
||||||
|
|
||||||
|
mkdir -p data/emails
|
||||||
|
chmod -R 775 data/emails
|
||||||
|
|
||||||
|
|
||||||
|
3. Configure your web server (e.g., Apache or Nginx + PHP) to POST email data to this script.
|
||||||
|
|
||||||
|
⸻
|
||||||
|
|
||||||
|
📨 Using with ForwardEmail.net
|
||||||
|
|
||||||
|
In your ForwardEmail account settings, set the Webhook URL to this script:
|
||||||
|
|
||||||
|
https://yourdomain.com/path/to/index.php
|
||||||
|
|
||||||
|
Make sure your server is publicly accessible and uses HTTPS.
|
||||||
|
|
||||||
|
ForwardEmail will send JSON payloads like:
|
||||||
|
|
||||||
|
{
|
||||||
|
"raw": "Full raw email as string...",
|
||||||
|
"from": {
|
||||||
|
"value": [
|
||||||
|
{
|
||||||
|
"address": "alice@example.com"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
⸻
|
||||||
|
|
||||||
|
🧪 Local CLI Testing
|
||||||
|
|
||||||
|
You can test the webhook manually via CLI:
|
||||||
|
|
||||||
|
php index.php < sample.json
|
||||||
|
|
||||||
|
Where sample.json contains a raw test email in JSON format.
|
||||||
|
|
||||||
|
⸻
|
||||||
|
|
||||||
|
🛠️ Optional Per-Sender Automation
|
||||||
|
|
||||||
|
To auto-process incoming emails, create either:
|
||||||
|
• index.sh: a shell script that reads from stdin
|
||||||
|
• index.php: a PHP script that reads from stdin
|
||||||
|
|
||||||
|
These will be triggered automatically upon email arrival.
|
||||||
|
|
||||||
|
⸻
|
||||||
|
|
||||||
|
📦 Dependencies
|
||||||
|
• PHP 7.0+
|
||||||
|
• No external dependencies (uses built-in PHP functions)
|
||||||
|
• A small helper file at receiveEmail/lib.php (ensure it’s present)
|
||||||
|
|
||||||
|
⸻
|
||||||
|
|
||||||
|
📄 License
|
||||||
|
|
||||||
|
MIT — feel free to modify and use!
|
||||||
|
|
||||||
|
⸻
|
||||||
|
|
||||||
|
🙋♂️ Author
|
||||||
|
|
||||||
|
Developed by Frederico Falcao
|
||||||
|
Questions or ideas? Open an issue or send an email.
|
||||||
Loading…
x
Reference in New Issue
Block a user