Its logo: GNU Mailman Logo GNU Mailman is a free software under the GNU Project, it is licensed under the GNU General Public License. This software basically manages various electronic mailing lists and provides lots of features on how to handle them. Mailman has been a regular organization under the GSoC project. The current maintainer of this project and one of my mentors is Abhilash Raj (handle: maxking).

The Feature, The Decription and The Problem

As I mentioned the software has various features, one of the most important one being extracting and handling bounces which is my project in this year’s GSoC. To fully understand what my role is and how do I intend to approach it we need to understand some concepts and then the underlying problem.
First, let's explain bounces in short.


Everything is fine according to the above summary but there is just one problem, the bounce message cannot explain very clearly that which address in the mailing list’s roster (roster means a list containing all the mailing lists’s subscribers) did the message was sent to. This information is important as we are able to find those members whose emails are generating the bounces. These emails could outdated or had some strict regulations and had banned this mailing-list. The mailing list will atleast disable the members subscription and will ask to renew it if not remove the user completely.
Keeping the roster up to date with current status of the emails is highly important for the mailing list for its efficieny.

There are some solutions to this the most common one being VERP.

So we understood that using VERP we can identify exactly the emails in our roster to which when we send our emails, the bounces are being generated. This whole above explanation is the first part of bounce handling, basically the extracting part where we had all the required information we need.
Now we have all the info, now what do to? Disable their subscriptions immediately? …….Not exactly, see here is where the problem starts.
Mail not being received to whom it was intended to has lots and lots of reasons, bad recipient address is just one of them. Their can be connection issues at all sort of levels which generate bounces. Speaking coarsely we receive the bounce message something like
Bounce Message
Oh! Snap mail to x@ymail.com was unable to deliver, something must be wrong somewhere
ME
Reads: something must be wrong somewhere That is really helpful meme
See, that’s not helpful at all! (except being a meme content)
We have to rule out all other options before taking the step of removing the subscription because if we removed the subscription of users whose emails are totally fine then that will be really bad as a consumer experience.
This problem was tackled in the previous Mailman2 version, but the new version had slightly modified funtions and should the process be same as the previous version or not was a topic of discussion, finally it was made a GSoC project this year for more valuable inputs and implementation.
I took up this project and thought upon a detailed implementation. The implementation I will share in the upcoming blog post as this one just too lengthy now I suppose.
Thanks for reading,
Cheers!