logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Mail::Verp - encodes and decodes Variable Envelope Return Paths (VERP) addresses.

Abstract

       Mail::Verp encodes and decodes Variable Envelope Return Paths (VERP) email addresses.

Author

       Gyepi Sam <gyepi@cpan.org>

Description

       Mail::Verp encodes the address of an email recipient into the envelope sender address so that a bounce
       can be more easily handled even if the original recipient is forwarding their mail to another address and
       the remote Mail Transport Agents send back unhelpful bounce messages. The module can also be used to
       decode bounce recipient addresses.

Functions

new()
           Primarily   useful   to   save   typing.   So   instead   of   typing   "Mail::Verp"   you   can  say
           my $x = Mail::Verp->new; then use $x whereever "Mail::Verp" is usually required.

           Accepts an optional "separator" argument for changing the separator, which defaults  to  hyphen  '-'.
           The value can also be changed using the "separator" accessor.

           my $x = Mail::Verp->new(separator => '+');

       encode(LOCAL-ADDRESS, REMOTE-ADDRESS)
           Encodes  LOCAL-ADDRESS,  REMOTE-ADDRESS  into a verped address suitable for use as an envelope return
           address. It may also be useful to  use  the  same  address  in  Errors-To  and  Reply-To  headers  to
           compensate for broken Mail Transport Agents.

           Uses current separator value.

       decode(VERPED-ADDRESS)
           Decodes  VERPED-ADDRESS into its constituent parts.  Returns LOCAL-ADDRESS and REMOTE-ADDRESS in list
           context, REMOTE-ADDRESS in scalar context.  Returns VERPED-ADDRESS if the decoding fails.

           Uses current separator value.

       separator
           Returns current value of the VERP "separator"

       separator(SEPARATOR)
           Sets new value for VERP "separator" and returns the previous value.

   EXPORT
       None.

Name

       Mail::Verp - encodes and decodes Variable Envelope Return Paths (VERP) addresses.

See Also

       DJ Bernstein details verps here: http://cr.yp.to/proto/verp.txt.

       Sam Varshavchik proposes an encoding here: http://www.courier-mta.org/draft-varshavchik-verp-smtpext.txt.

Synopsis

         use Mail::Verp;

         #Using class methods

         #Change separator to something else
         Mail::Verp->separator('+');

         #Create a VERP envelope sender of an email to recipient@example.net.
         my $verp_email = Mail::Verp->encode('sender@example.com', 'recipient@example.net');

         #If a bounce comes back, decode $verp_email to figure out
         #the original recipient of the bounced mail.
         my ($sender, $recipient) = Mail::Verp->decode($verp_email);

         #Using instance methods

         my $verp = Mail::Verp->new(separator => '+');

         #Create a VERP envelope sender of an email to recipient@example.net.
         my $verp_email = $verp->encode('sender@example.com', 'recipient@example.net');

         #Decode a bounce
         my ($sender, $recipient) = $verp->decode($verp_email);

See Also