One-click phishing reporting from Apple Mail. Select a suspicious email, press a shortcut, and it's forwarded as a .eml attachment to three reporting services — with full original headers preserved.
Most people just delete phishing emails. But reporting them helps:
- Take down phishing sites — services like Netcraft actively shut down fraudulent pages
- Protect others — reported emails feed into blocklists used by email providers worldwide
- Train detection systems — organizations like APWG use reports to improve automated filters
This Quick Action makes reporting as easy as pressing a keyboard shortcut. No copy-pasting URLs, no filling out web forms — just select and report.
Forwards selected email(s) in Apple Mail as .eml attachments to three phishing reporting services.
Each selected email is sent as its own separate report — one report email per phishing message.
Original headers (IP, DKIM, Return-Path, Received chain, SPF, Authentication-Results etc.) are fully preserved.
| Address | Organization | Scope |
|---|---|---|
reportphishing@apwg.org |
Anti-Phishing Working Group | Global |
scam@netcraft.com |
Netcraft (Takedown Service) | Global |
phishing@verbraucherzentrale.nrw |
Verbraucherzentrale NRW | Germany |
Each report email contains:
- Subject:
[Phishing Report] 2026-04-03T14:32:05 #1(timestamp + sequential index) - Body: Structured metadata (sender, subject, date received) for quick analyst triage
- Attachment: The original phishing email as
.emlwith full headers
- Requires macOS 10.14 (Mojave) or newer
- Tested with Apple Mail and Automator
- Works with IMAP and POP accounts (email must be fully downloaded)
Download report_phishing.applescript or clone this repo:
git clone https://github.com/kyannik/applescript-phishing-report.git- Open Automator (Spotlight → "Automator")
- New Document → choose Quick Action
- Set at the top:
- "Workflow receives": no input
- "in": Mail.app
- Search the action library on the left: "Run AppleScript"
- Drag the action into the workflow area
- Paste the entire contents of
report_phishing.applescript - Save as: "Report Phishing"
- System Settings → Keyboard → Keyboard Shortcuts
- Select "Services" on the left
- Under "General" or "Mail" find "Report Phishing"
- Assign a shortcut, e.g.:
⌃⌥⌘P(Ctrl+Option+Cmd+P)
macOS will automatically prompt for permissions on first run — just click "OK".
If the dialog was accidentally dismissed:
- System Settings → Privacy & Security → Automation
- Allow Automator to control Mail
If file access errors occur:
- System Settings → Privacy & Security → Full Disk Access
- Enable Automator
- Select email(s) in Mail
- Right-click → Services → Report Phishing
- Select email(s) in Mail
- Press shortcut (e.g.
⌃⌥⌘P)
- Each selected email is reported as a separate message with one
.emlattachment - Selecting 5 emails → 5 report emails are sent, each with subject
[Phishing Report] ... #1through#5 - No review window — press the shortcut and it's done
- Emails not fully downloaded (IMAP) are skipped with a notice
To review each report before sending, change these lines in the script:
-- Comment out or delete this line:
-- send newMessage
-- Insert instead (before "end if"):
set visible of newMessage to true
activateThis opens the compose window for manual review before sending.
This script has been tested against known Apple Mail AppleScript issues:
| Issue | Mitigation |
|---|---|
| Async attachment bug — Mail.app sends before attachments finish loading | delay 2 before each send call |
IMAP partial download — source returns empty for undownloaded messages |
Guard checks for missing value / empty string, skips with notice |
| File handle leak — error during write leaves file handle open | Nested try block in error handler ensures close access |
| Filename collision — rapid re-runs overwrite temp files | Timestamp in filenames (phishing_20260403_143205_1.eml) |
Temp file cleanup — .eml files with sensitive content left on disk |
Automatic deletion after send |
- The
.emlfile contains all headers and the text body of the original email. Binary attachments of the phishing mail are not fully included in Mail.app's raw source (irrelevant for header analysis). - Temp files are automatically deleted after sending.
- Some email providers have their own spam reporting mechanisms (e.g., via webmail). Check if your provider offers one and use it in addition to this script.
- iCloud spam can optionally also be reported to
abuse@icloud.com.
Edit the reportAddresses list at the top of the script:
set reportAddresses to {"reportphishing@apwg.org", "scam@netcraft.com", "phishing@verbraucherzentrale.nrw"}Add a sender property if you have multiple Mail accounts:
set newMessage to make new outgoing message with properties {subject:reportSubject, content:reportBody, sender:"you@example.com"}Contributions are welcome! Please:
- Fork the repo
- Create a feature branch (
git checkout -b my-feature) - Test with Apple Mail on your macOS version
- Submit a PR with a description of what you changed and why
If you find a bug, please open an issue with your macOS version and a description of what happened.
MIT — use it, modify it, share it.