A scripted reject is not a spam click
Answer A Sieve script can refuse a message without a person clicking anything. RFC 5429 defines reject and ereject. One refuses during the SMTP session. The other sends a bounce later. Neither is a spam complaint. On a solo ad report, a script and a human vote do not belong in the same box.
The note that started this: RFC 5429, Sieve Reject and Extended Reject, RFC 5429.
Yesterday's script answered politely because someone was away. Today's script says no. Filters use no to drop newsletters the reader stopped wanting, mail from whole domains, or anything with a particular header. The no can happen before you would call the message delivered. A seller who reports that no as the reader hit spam is narrating a click that did not occur. Safe solo ads sellers keep the verbs straight.
The document distinguishes the two actions on purpose. ereject is meant to refuse the message while the SMTP conversation is still open, so the sending server learns immediately and a later bounce is not required. reject is the older pattern, a bounce generated after acceptance. Both come from a script the mailbox or the provider installed. A person may have written the script months ago. They are not sitting there for your send, and they did not evaluate your headline this morning.
What is a Sieve reject?
RFC 5429 defines reject and ereject. A Sieve script can refuse a message. ereject refuses it during the SMTP session. reject generates a bounce after the session. Both are scripts.
Immediate refusal is the kinder machine. The sending server can stop, record a failure, and avoid a backscatter bounce to a forged address. Delayed reject is messier. It accepts, then it creates a new message to say no. Either way, the decision was a rule. When you see a failure in the log, the text may even mention a filter. Read that text before you invent a mood for the subscriber.
Providers also run their own rules, which may or may not be Sieve. The lesson does not depend on the brand of the filter. A machine refusal and a human complaint are different inputs. Your suppression list should be allowed to treat them differently. A hard bounce from a dead address is one habit. A filter refusal of a live address is another. A spam click is a third. One button labeled bad mail is how good addresses get thrown away, and how real complaints get diluted.
- Session refusals are counted as refusals.
- Later bounces are counted as bounces.
- Spam-button events are counted as complaints.
- The three are not averaged into one anger score.
Is a scripted reject the same as a spam complaint?
No. A spam complaint is a person marking the message. A scripted reject is a rule firing. The seller should not report one as the other.
The difference changes what you do next. A wave of human complaints means the list did not want this kind of mail, or the offer was offensive, or the frequency spiked. You stop and you apologize to the file. A wave of scripted rejects might mean your authentication is broken, your message is too big, or a provider started matching a pattern in your headers. You fix the pattern. Apologizing to a script does nothing. Buying a fresh list because a script said no does less than nothing.
Buyers who only receive a single red number cannot tell which repair they need. Demand the split in the report you are entitled to after the drop. If the seller's platform cannot split them, say so in the quote, and do not let the combined number be called a complaint rate. Call it a failure count. Rates have denominators and definitions. A blob does not.
How should a solo ad report treat refusals?
Separate SMTP refusals, later bounces, and human spam complaints. A spike in scripted refusals is a reason to read the rule, not a reason to call the list angry.
Read the rule means look at the status text and the header that failed. It does not mean blame the copywriter first. It does not mean blame the readers first. The order of operations is the status, then the message, then the list. Sellers reverse that order because the list is the thing they can invoice again.
RFC 5429 gives you the vocabulary for two of the machine paths. Use the vocabulary on the report. A scripted reject is a script doing what it was written to do. The spam button is a person. July's reports should be able to say which one happened.