Feedback loop report parser: turn spam complaint reports into a suppression list
In short: Reads pasted ARF reports (RFC 5965: Feedback-Type, User-Agent, Source-IP, Original-Rcpt-To and the reported message) and Amazon SES complaint notification JSON. Lists each complaint, counts redacted recipients, groups by subject, Feedback-ID, sending IP and up to five headers of yours, and builds a suppression list. Limit: It reads the reports you paste; providers without a feedback loop send none, and Gmail reports only aggregates.
Paste the complaint reports your feedback loop mailbox received, or upload them as .eml, .mbox or .json. The tool reads each ARF report or SES complaint notification, lists the complainant where the provider left it in, counts the ones it redacted, and groups complaints by subject, Feedback-ID, sending IP and your own campaign header, so you can suppress the people and find the campaign.
Price: this tool is free. Checking a whole email list is from $9/mo, and the first 100 checks are free with Google, no card. See pricing
Sample result
3 complaints: 2 addresses to suppress, 1 redacted, 2 from the oct-sale campaign.
- Complaints
- 3
- To suppress
- 2
- Top campaign
- oct-sale (2)
What this means for you
Suppress the two now and trace the redacted one through its Message-ID; then look at the oct-sale list.
- RFC 5965 ARF reports
- Amazon SES complaint JSON
- Grouped by subject, IP, Feedback-ID
- Your own X- headers pulled out
- Feedback loop
- Complaints
- Suppression
By SimpleVerifier Team · Last updated · Runs in your browser; nothing you paste is sent to us
What do I do with the rest of the segment that drew the complaints?
- Find the list or segment the complaints share and pause it.
- Upload it at /verify to remove dead and disposable addresses before any re-permission email. The first 100 email checks are free with a Google sign-in, no card.
- Mail only the people who confirm, or drop the segment.
How do I process feedback loop complaints?
- Collect the reports: the mailbox your feedback loop sends to (Yahoo's CFL and other providers send ARF), or Amazon SES complaint notifications from email or SNS.
- Paste them, or upload a .eml, .mbox, .txt or .json file. Name any tracking header of yours, such as X-Campaign-ID, to pull it out.
- Press Read the complaints and look at what they share: one subject, one Feedback-ID, one IP.
- Download the suppression list and add it to every platform you send from. Trace redacted reports through the Message-ID or your header.
Example
- You enter
- Two ARF reports for the same
Our autumn sale ends tonightcampaign (one with Original-Rcpt-To, one whose recipient isredacted@) and one Amazon SES complaint notification, with X-Campaign-ID as the header to pull out. - You get
- 3 complaints, all abuse: 2 addresses to suppress and 1 redacted. Two share Feedback-ID
oct-sale:newsletter:northwind1, X-Campaign-IDoct-saleand source IP 192.0.2.10; the SES one iswebinar-replayfrom 198.51.100.7. - Limits
- Runs in your browser; pasted text is read up to 5 MB, an uploaded file up to 25 MB.
What's in a feedback loop report?
A feedback loop sends you a report each time a recipient at a participating provider marks your message as spam. Most use the Abuse Reporting Format, RFC 5965: a human-readable part, a machine-readable part with fields such as Feedback-Type, User-Agent, Source-IP, Arrival-Date and Original-Rcpt-To, and a copy of the reported message or its headers.
Many providers redact the recipient before sending the report. Amazon SES says some providers remove the address and recommends keeping your own mapping between an identifier and each message ID; that's why the tool also pulls out Message-ID, Feedback-ID, List-Unsubscribe and your own X- headers. More in email feedback loops explained.
What to do with the complaints
Suppress every complainant at once. SES's guidance is to remove them and not even send a confirmation, then look at why recipients didn't want the mail, because each complaint can stand for many more people who didn't report it.
Group before you act: complaints that share one subject or Feedback-ID point at a campaign, ones that share one IP at a sending stream. Gmail doesn't send per-message reports; its Feedback Loop shows spam rates per Feedback-ID in Postmaster Tools, which the Feedback-ID header generator sets up.
Who uses this tool, and for what?
- Self-hosted senders
- Turn a week of FBL mail into one suppression file and a count per campaign.
- SES developers
- Read complaint notifications without writing a script, and see which campaign header they share.
- Deliverability consultants
- Show a client exactly which send drew the complaints.
What can’t this tool tell you?
- It reads the reports you paste; providers without a feedback loop send none, and Gmail reports only aggregates.
- Redacted recipients can't be recovered from the report itself.
- It reads ARF and SES JSON; other vendors' complaint webhooks may need converting first.
- It can't tell who else on the list will complain. Only permission fixes that.
Common questions
- Why are the recipient addresses missing?
- The provider redacted them, which many do. Use the Message-ID, Feedback-ID or a header of yours to match the report to a recipient in your own sending logs.
- Does Gmail send ARF reports?
- No. Gmail's Feedback Loop reports aggregate spam rates per Feedback-ID identifier in Postmaster Tools, not individual complaints.
- Can I paste Amazon SES complaint notifications?
- Yes. Paste the JSON notifications, one or many, or SNS messages that wrap them; complainedRecipients, complaintFeedbackType and the mail headers are read.
- Is anything uploaded?
- No. Reports are read in your browser.
Sources
Authentication and capacity are half of deliverability.
The other half is who you send to. Every hard bounce counts against the domain and inboxes you are sending from, and nothing in DNS can tell you which addresses on your list are dead.
- Bulk verification with real SMTP mailbox checks
- Hard bounces removed before a send, not discovered after
- Catch-all, disposable and role detection on every row
Plans from $9 a month, cancel anytime, no contract. Sign in with Google and your first 100 email checks are free, no card. The free tools stay free either way.