Business and Team Business
Email to files on your own server
Some systems only read files: an ERP or accounting import, a warehouse system, a nightly job. A file drop writes what an endpoint receives as CSV, XML or JSON files to your SFTP, FTP/FTPS or S3-compatible server, a file per email or one per batch, so the system that watches the folder picks them up.
Set it up
- 1
Add a file drop
In the endpoint's Settings, under Forwarding, pick File drop.
- 2
Say where the files go
SFTP with a password or a private key, FTPS (explicit TLS) or FTP with a password, or S3-compatible storage with a bucket and an access key that may write objects. Then the folder, or the key prefix on S3.
- 3
Choose what each file holds
CSV or XML with the columns you set, a row per email or per line item, or JSON: each email as signed JSON sends it, with its parsed fields and line items.
- 4
A file per email, or per batch
A batch holds everything that arrives within the minutes you set, 1 to 60, after its first email.
- 5
Test the connection
Save, then Test the connection: it logs in and writes webhooks-cc-test.txt to the folder.
Every setting, in full: File drops in the forwarding docs
Where the files go
SFTP
Host, port (22), username, and a password or a private key (OpenSSH or PEM). The server's host key is pinned on the first connection, and a different one later stops the drop, as ssh would.
FTPS and FTP
Host, port (21), username and password. FTPS uses explicit TLS; plain FTP sends the password and the files unencrypted, so keep it for servers that offer nothing else.
S3-compatible
AWS, Cloudflare R2, Hetzner, MinIO, Backblaze and the like: the endpoint URL, region, bucket, and an access key that only needs to write objects.
On SFTP and FTP the folder must exist and is relative to the login's home folder; on S3 it is the key prefix. For a self-signed certificate, enter its SHA-256 fingerprint and only that certificate is accepted.
What lands in the folder
An order email from Acme, as a file per email with a row per line item and the prefix orders-. The same columns can be written as XML, where each row is a <row> element with an element per column, named after its header:
orders-20261029-173326-3f2a9c1e.csv
Order,SKU,Qty,Price
1001,ACME-TEE-M,2,12.50
1001,ACME-MUG,1,12.50<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<Order>1001</Order>
<SKU>ACME-TEE-M</SKU>
<Qty>2</Qty>
<Price>12.50</Price>
</row>
<row>
<Order>1001</Order>
<SKU>ACME-MUG</SKU>
<Qty>1</Qty>
<Price>12.50</Price>
</row>
</rows>A CSV cell that a spreadsheet would read as a formula is written as text. JSON files hold each email as signed JSON sends it, parsed fields and line items included.
What to know
- Business, and Team Business for endpoints shared with the team
- SFTP, FTPS, FTP and S3-compatible storage
- CSV, XML or JSON; up to 50 columns in CSV and XML
- A file per email, or per batch of 1 to 60 minutes
- Written under a temporary name, then renamed
- SFTP host keys pinned on the first connection
- Connects from mx.mailhooks.cc, one address to allow
- Passwords and keys stored encrypted, never shown again
Plans, prices and limits: Pricing
Questions
More on mailhooks.cc
Google Sheets
A row per email or per line item, in a spreadsheet you pick.
Your own domain
Mail to orders@inbound.acme.com, sent to the endpoints you choose.
AI setup
Patterns for fields and layouts, drafted from emails you pick.
Zapier and Make
Start a Zap or a Make scenario with each parsed email.
Ready-made layouts
Orders, bookings, receipts and reports from the senders you already use.