VERP
   HOME

TheInfoList



OR:

Variable envelope return path (VERP) is a technique used by some electronic mailing list software to enable automatic detection and removal of undeliverable e-mail addresses. It works by using a different
return path {{No footnotes, date=June 2016 A bounce address is an email address to which bounce messages are delivered. There are many variants of the name, none of them used universally, including return path, reverse path, envelope from, envelope sender, MA ...
(also called "envelope sender") for each recipient of a message.


Motivation

Any long-lived mailing list is eventually going to contain addresses that can't be reached. Addresses that were once valid can become unusable because the person receiving the mail there has switched to a different provider. In another scenario, the address may still exist but be abandoned, with unread mail accumulating until there is not enough room left to accept any more. When a message is sent to a mailing list, the mailing list software re-sends it to all of the addresses on the list. The presence of invalid addresses in the list results in
bounce message A bounce message or just "bounce" is an automated message from an email system, informing the sender of a previous message that the message has not been delivered (or some other delivery problem occurred). The original message is said to have "bou ...
s being sent to the owner of the list. If the mailing list is small, the owner can read the bounce messages and manually remove the invalid addresses from the list. With a larger mailing list, this is a tedious, unpleasant job, so it is desirable to automate the process. However, most bounce messages have historically been designed to be read by human users, not automatically handled by software. They all convey the same basic idea ("the message from X to Y could not be delivered because of reason Z") but with so many variations that it would be nearly impossible to write a program to reliably interpret the meaning of every bounce message. RFC 1894 (obsoleted by RFC 3464) defines a standard format to fix this problem, but support for the standard is far from universal. However, there are several common formats (e.g., RFC 3464,
qmail qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. Originally license-free software, qmail's source code ...
's qsbmf, and Microsoft's DSN format for
Exchange Exchange may refer to: Physics *Gas exchange is the movement of oxygen and carbon dioxide molecules from a region of higher concentration to a region of lower concentration. Places United States * Exchange, Indiana, an unincorporated community * ...
) that cover large proportion of bounces. Microsoft Exchange can sometimes bounce a message without providing any indication of the address to which the original message was sent. When Exchange knows the intended recipient, but is not willing to accept email for them, it omits their address. If a message is sent to joe@example.com and the server knows that this is "Joe User", it will bounce the message saying that the message to "Joe User" could not be delivered, leaving out the joe@example.com address altogether. VERP is the only viable way to handle such bounces correctly.


How VERP solves the bounce handling problem

The hard part of bounce handling is matching up a bounce message with the undeliverable address that caused the bounce. If the mailing list software can see that a bounce resulted from an attempt to send a message to , then it doesn't need to understand the rest of the information in the bounce. It can simply count how many messages were recently sent to , and how many bounces resulted, and if the proportion of bounced messages is too high, the address is removed from the list. While bounce message formats in general vary wildly, there is one aspect of a bounce message that is highly predictable: ''the address to which it will be sent''. VERP takes full advantage of this. In a mailing list that uses VERP, a different sender address is used for each recipient. The mailing list manager knows that it sent a message from X to Y, so if a bounce message is received at address X, it can only be because address Y was undeliverable, because nothing was sent from X to any other address. Thus the important information has been extracted from the bounce message, without any need to understand its contents, which means the person in charge of the list does not need to deal with it manually.


Origin

The first serious advocate of this solution, and the originator of the term VERP to describe it, was Daniel J. Bernstein, who first put the idea into practice in his
qmail qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. Originally license-free software, qmail's source code ...
MTA and ezmlm mailing list manager.


Example

Assume there is a mailing list called wikipedians@example.net and that an individual, bob@example.org has subscribed to it, but later on, Bob has left example.org, so his address is no longer valid. Consider what happens when someone sends a message to the list.


Without VERP

Without VERP, the mailing list manager might send a message with the following characteristics: * envelope sender: wikipedians-owner@example.net * recipient: bob@example.org This would result in a bounce, generated by the MTA of either example.net or example.org, with the following characteristics: * envelope sender: ''empty'' * recipient: wikipedians-owner@example.net * contents: example.org was unable to deliver the following message to bob: ... The mailing list manager can't be expected to understand the contents of this bounce, and can't deduce anything from the recipient address because hundreds of other people besides Bob were also sent messages from wikipedians-owner@example.net.


With VERP

With VERP, the original message would be different: * envelope sender: wikipedians-owner+bob=example.org@example.net * recipient: bob@example.org The bounce, then, will be more useful: * envelope sender: ''empty'' * recipient: wikipedians-owner+bob=example.org@example.net * contents: example.org was unable to deliver the following message to bob: ... From this bounce message the mailing list manager can deduce that a message to bob@example.org must have failed. This example shows the simplest possible method of matching a VERP to a list subscriber: the entire recipient address is included within the return path, with the at sign replaced by an equals sign because a return path with two at signs would be invalid. Other encoding schemes are possible.


Software that supports VERP

* CiviCRM * Courier Mail Server * Discourse *
exim Exim is a mail transfer agent (MTA) used on Unix-like operating systems. Exim is free software distributed under the terms of the GNU General Public License, and it aims to be a general and flexible mailer with extensive facilities for checking ...
, using a specialized Router/Transport combination * ezmlm *
GNU Mailman GNU () is an extensive collection of free software (383 packages as of January 2022), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operat ...
*
G Suite Google Workspace (formerly known as Google Apps and later G Suite) is a collection of cloud computing, productivity and collaboration tools, software and products developed and marketed by Google. It consists of Gmail, Contacts, Calendar, Mee ...
* Inxmail *
Mercury Mail Transport System Mercury Mail Transport System (Mercury MTS) is a standards-compliant mail server developed by David Harris, who also develops the Pegasus Mail client. It was freeware prior to January 2007, but is now donationware for non-commercial and personal ...
* mlmmj * Mahara *
Mailchimp Mailchimp is a marketing automation platform and email marketing service. "Mailchimp" is the trade name of its operator, Rocket Science Group, an American company founded in 2001 by Ben Chestnut and Mark Armstrong, with Dan Kurzius joining at a ...
* Maileon *
MediaWiki MediaWiki is a free and open-source wiki software. It is used on Wikipedia and almost all other Wikimedia websites, including Wiktionary, Wikimedia Commons and Wikidata; these sites define a large part of the requirement set for MediaWi ...
though mw:Extension:BounceHandler *
Moodle Moodle is a free and open-source learning management system written in PHP and distributed under the GNU General Public License. Moodle is used for blended learning, distance education, flipped classroom and other online learning projects in s ...
*
Plesk Plesk is a commercial web hosting and server data center automation software developed for Linux and Windows-based retail hosting service providers. It was developed by Plesk International GmbH, with headquarters in Toronto, Canada and Sch ...
* postfix *
qmail qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. Originally license-free software, qmail's source code ...
*
Sendmail Sendmail is a general purpose internetwork email routing facility that supports many kinds of mail-transfer and delivery methods, including the Simple Mail Transfer Protocol (SMTP) used for email transport over the Internet. A descendant of the ...
, with a ruleset * STEdb * StrongMail *
Sympa ''Sympa'' is a Mailing list management (MLM) software. Its name, which is an acronym for ''Système de Multi-Postage Automatique'' (i.e. ''Automatic Mailing System''), also means "nice" ( friendly) in French. Sympa is free and open-source soft ...
* Thexyz * Zimbra * Target Box * NotifyBC * AWS SES (Simple Email Service)


Disadvantages

The use of VERP requires each message to be sent once for every recipient, instead of once to each receiving
SMTP The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients ty ...
server. This is because of a limitation of SMTP, which allows multiple recipient addresses to be specified in a single transaction, but only one sender address. When there are many subscribers in the same domain, a mailing list that is not using VERP can combine multiple deliveries into a single transaction. It connects to the appropriate
server Server may refer to: Computing *Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients Role * Waiting staff, those who work at a restaurant or a bar attending customers and su ...
for the domain, gives the single sender address, the recipient addresses, and then sends the message contents only once. A mailing list using VERP, on the other hand, must send the entire message body repeatedly, which leads to an overall increase in
bandwidth Bandwidth commonly refers to: * Bandwidth (signal processing) or ''analog bandwidth'', ''frequency bandwidth'', or ''radio bandwidth'', a measure of the width of a frequency range * Bandwidth (computing), the rate of data transfer, bit rate or thr ...
usage. This inefficiency is usually not considered a big problem, especially by
qmail qmail is a mail transfer agent (MTA) that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular Sendmail program. Originally license-free software, qmail's source code ...
users, since qmail always sends messages once per recipient, even when VERP is not being used. Some packages mitigate the impact of VERP by applying it selectively, for example a mailing list manager might only use VERP on 1 in 10 mailings. This way you can gain much of VERP's tight bounce control and accurate feedback without incurring the processing and network overhead every time. Another problem with VERP (and with any automatic bounce handling scheme) is that there are MTAs on the Internet that fail to follow basic SMTP standards. VERP depends on the recipients' MTAs following the rule that bounces are sent to the
envelope sender {{No footnotes, date=June 2016 A bounce address is an email address to which bounce messages are delivered. There are many variants of the name, none of them used universally, including return path, reverse path, envelope from, envelope sender, MA ...
. This has been a standard requirement since the dawn of SMTP in 1982 (see RFC 821), but still there are MTAs that get it wrong, usually by bouncing to the address in the From: header. Systems that implement greylisting work fine with VERP if the envelope sender follows the above-mentioned format. However, some VERP implementations use message number or random key as part of VERP, which causes each post to the mailing list to be delayed unless the greylisting system treats "similar" sender addresses as being equivalent.


See also

*
Bounce Address Tag Validation In computing, Bounce Address Tag Validation (BATV) is a method, defined in an Internet Draft, for determining whether the bounce address specified in an E-mail message is valid. It is designed to reject backscatter, that is, bounce messages to for ...
(BATV) – for bounces from
backscatter In physics, backscatter (or backscattering) is the reflection of waves, particles, or signals back to the direction from which they came. It is usually a diffuse reflection due to scattering, as opposed to specular reflection as from a mirror, a ...
*
Sender Rewriting Scheme The Sender Rewriting Scheme (SRS) is a scheme for bypassing the Sender Policy Framework's (SPF) methods of preventing forged sender addresses. Forging a sender address is also known as email spoofing. Background In a number of cases, including ...
(SRS) – for bounces from e-mail forwarding and SPF *
Simple Mail Transfer Protocol The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typica ...
(SMTP)
draft SMTP extension to streamline VERP


References

{{DEFAULTSORT:Variable Envelope Return Path Email