bouncehandler app

bouncehandler

Repeated sending to wrong / inactive recipients is considered “spammer behavior”.
In recent years, more and more smtp servers have been blacklisted for this reason.


The most noticeable error occurs when the Mail-From/Return-Path address mailbox,
the one receiving the bounced messages, is full or non-existent.
By sending thousands of messages, if 20% come back, it’s easy to fill even a large inbox in minutes.

Receiving all bounced messages without reading them could be considered a minor flaw.
You keep sending emails to addresses that bounce back, with error details that no one cares about.

In both cases, the result is that the smtp server is blacklisted. In this way,
not only will messages not be delivered to invalid recipients, but valid recipients will also receive them as SPAM.


To solve the first problem, we have been offering “newsletter mailboxes” for a long time.
Analyzing bounced messages is more difficult and requires a tool that works very well.

sisimai bounce handler overview

We chose “Sisimai: Mail Analyzing Interface”, formerly known as bounceHammer 4: an error mail analyzer.
An open source software, that parses RFC5322 bounce mails and generates structured data as JSON.

To get an idea of all the possible error codes that Sisimai parses, take a look at “The SMTP Field Manual”,
a collection of raw SMTP error code responses from major email service providers.


The automatic blocklist

Implementing the bounce handler within RealSender is simple.

  1. activate the “newsletter mailbox
  2. configure your sending application to use the new Return-Path address
  3. ask to verify the setup and activate the “bounce handler”

The “bouncehandler” app starts checking the bounced messages.
Two blocklists are activated:

  1. the hard bounces blocklist
    contains all the email addresses that generated a permanent error,
    such as user unknown or host unreachable

    the weekly hard bounces log is available at the web address:
    https://…hardbounces.email.weekly

  2. the soft bounces blocklist
    contains all the email addresses that generated three or more transient errors,
    such as mailbox full, at least one week away from each other

    the weekly soft bounces log is available at the web address:
    https://…softbounces.email.weekly


Sending messages to a blocklisted recipient will generate an error like this:

Send message error


Manage your blocks independently

We provide you with the following files,
as web addresses, protected by password or IP address:

https://…bounces.json
the details of the bounces received in the last seven days, in JSON format, such as:

  {
    "feedbacktype": "",
    "addresser": "info@circuitocinemascuole.com",
    "diagnostictype": "SMTP",
    "timezoneoffset": "+0200",
    "lhost": "linp.arubabusiness.it",
    "destination": "gmail.com",
    "timestamp": 1635536166,
    "senderdomain": "circuitocinemascuole.com",
    "deliverystatus": "5.1.1",
    "token": "daad8f8fc89cef70e1406a9d2b38be6c35326e03",
    "recipient": "...@gmail.com",
    "subject": "Prenotazioni aperte_Giornata Internazionale dei Diritti dell'Infanzia e dell'Adolescenza_Film FIGLI DEL SOLE",
    "origin": "/home/rs109-bounce/Maildir/new/1635528969.21113_0.rsbox.realsender.com",
    "rhost": "gmail-smtp-in.l.google.com",
    "reason": "userunknown",
    "diagnosticcode": "550-5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces. Learn more at https://support.google.com/mail/?p=NoSuchUser z3si7494964ybg.507 - gsmtp 503 5.5.1 RCPT first. z3si7494964ybg.507 - gsmtp",
    "messageid": "McuPi4DjtlyhvlSMVNB4wTXsUKQeIy6XwlKoAZuJ4@www.circuitocinemascuole.com",
    "listid": "",
    "action": "failed",
    "softbounce": 0,
    "replycode": "550",
    "catch": null,
    "alias": "",
    "smtpagent": "Sendmail",
    "smtpcommand": "DATA"
  },

https://…hardbounces.json
the details of the hard bounces 1 received in the last seven days, in JSON format

https://…hardbounces.email
the list of email addresses that generated a hard bounce 1 in the last seven days

1 = selection criteria: softbounce == 0


https://…softbounces.json
the details of the soft bounces 2 received in the last seven days, in JSON format

https://…softbounces.email
the list of email addresses that generated a soft bounce 2 in the last seven days

2 = selection criteria: softbounce == 1


These are the same files used by the automatic blocklist:

https://…hardbouncesfull.email
the list of all email addresses that generated two or more hard bounces
at least one week away from each other

https://…softbouncesfull.email
the list of all email addresses that generated three or more soft bounces
at least one week away from each other


Request a free trial

Subsections of bouncehandler app

newsletter mailboxes

To receive the bounced messages generated by sending newsletters and mass mailings,
you need to setup additional mailboxes (e.g. bounce@…)

and optionally one mailbox for receiving reply emails (e.g. news@…)
if you want to filter them and send automatic replies to the most common requests.

For this reason we introduced two mailboxes matched to your RealSender account:
bounce@email.youremaildomain.com -> bounce@rsXXX-realsender.com
news@email.youremaildomain.com -> news@rsXXX-realsender.com

Explanation:

Using a Mail-From address (also known as bounce/return-path/envelope address)  
with a domain other than the From address
would break the DMARC authentication

To use the "newsletter mailboxes" 
you need to set up a sub-domain of the From address

e.g.  the From address is:           offers@youremaildomain.com
      the sub-domain could be:       email.youremaildomain.com   CNAME   rsXXX-realsender.com
      the Mail-From address becomes: bounce@email.youremaildomain.com

The suggested configuration follows the rules
to send DMARC compliant emails on behalf of customers.

DMARC allows you to send authenticated emails using a sub-domain (such as email.youremaildomain.com), and still be able to use the top-level domain in the From: header (e.g. From: offers@youremaildomain.com).

No additional settings are required in the DNS of your domain name.

As per RFC1912 section 2.4:
 A CNAME record is not allowed to coexist with any other data.  
 In other words, if email.youremaildomain.com is an alias for rsXXX-realsender.com, 
 you can't also have an MX record for email.youremaildomain.com, or an A record, 
 or even a TXT record 

The mailboxes have been configured so that they can receive
large amounts of emails in a short time, as in the case of bounces.
!!! Please note: email messages are automatically deleted after 7 days !!!

To download the emails, you should configure your email client,
or the application that analyzes the bounced messages,
with the following POP3 server address: pop.rsXXX-realsender.com.
Usernames and passwords are available through the website’s restricted area.

list-unsubscribe with block

list-unsubscribe with block


If they are not present, RealSender automatically adds the List-Unsubscribe headers
to your sent messages, as described on the page “make it easy to unsubscribe”.

In the recipient’s messaging app,
after clicking the “Unsubscribe” link, a confirmation request appears:

gmail unsubscribe

Following the request received, the provider sends us the cancellation notification,
which we immediately deliver to the email address indicated by the customer, even more than one,
with the subject: “RealSender :: rsXXX MM-DD #EMAILID# :: please UNSUBSCRIBE me ::”.



The automatic blocklist

The “bouncehandler” app automatically checks for unsubscribe requests
and blocks new emails from recipients who have requested not to receive future emails.

The “unsubscriptions” blocklist is activated:
it contains all the email addresses that have requested unsubscribe
via the “List-Unsubscribe” function, as described above.

the weekly log of all “unsubscriptions” is available at the web address:
https://…unsubs.email.weekly

Sending messages to a recipient on the blocklist will result in an error like this:

Send message error - unsubscribed


Manage your blocks independently

We provide you with the following files,
as web addresses, protected by password or IP address:

https://…unsubs.json
the details of unsubscribe requests received in the last seven days, in JSON format, such as:

  {
    "mailbox": "rsXXX",
    "id": "20241121T181856-0088",
    "from": "Jonh Doe <john.doe@bogusemail.net>",
    "to": [
      "<abuse@rsXXX-realsender.com>"
    ],
    "subject": "RealSender :: rsXXX Nov-1 4ALGbKtb016000 :: please UNSUBSCRIBE me ::",
    "date": "2024-11-21T18:18:56.908809804+01:00",
    "posix-millis": 1732209536908,
    "size": 4057,
    "seen": false
  },

https://…unsubs.email
the list of email addresses that have requested unsubscription in the last seven days


This is the same files used by the automatic blocklist:

https://…unsubssfull.email
the list of all email addresses that requested unsubscription, in alphabetical order


Request a free trial