|Sun 1998-12-06 "Matthew G. Saroff" <msaroff(_at_)pca(_dot_)net> list.procmail
| I've tried + addressing, and the mail gets bounced back.
| I've tried to send to msaroff+testing(_at_)pobox(_dot_)com(_dot_)
| Am I using this notation incorrectly.
As others have noted, the + is sendmail thingie.
But you can emulate tha PLUS addressing with any email address and
parse the PLUS information yourself. For example I use forwarding
address
jari(_dot_)aalto(_at_)poboxes(_dot_)com (Jari Aalto+list.procmail)
===============
where the plus information is /carried/ through possible many forwarders to
the destination machine. I've included relevant section from pm-tips page below.
(See ftp site in X-info)
The RC_EMAIL mentined below is part of pm-code.shar procmail module kit.
(See File server in X-info)
jari
13.3 Using RFC comment trick for additional information
Recall from [rfc1036] that the prederred Usenet email address
formats are following
From: login(_at_)example(_dot_)com
From: login(_at_)example(_dot_)com (First Surname)
From: First Surname <login(_at_)example(_dot_)com>
I invented this idea after reading Eli's exellent faq about email
addressing. Please read it (especially section 19.) before you
continue in order to understand what I'm going to present.
I have an account which does not support plus addressing and I was
kinda jealous to everyone that could use this neat sendmail
addressing scheme. The plus addressing helps so much better to deal
with mailing list messages.
But as it turns out, we can simulate in some extent plus addressing
with pure RFC compliant address. We exploit RFC comment syntax,
where comment is any text inside parentheses. According to Eli's
paper, comments should be preserved during transit. They may not
appear in the extact place where originally put, but that shouldn't
be a problem. So, we send out message with following `From' or
`Reply-To' line:
first(_dot_)surname(_at_)domain (First Surname+list.procmail)
Now, when someone replies to you, the MUA usually copies that
address as is and you can read in the receiving end the PLUS
information and drop the mail to appropriate folder: `mail.procmail'.
[About subscribing to mailing lists with RFC comment-plus addess]
It's very unfortunate that when you subscribe to lists, the comment
is not preserved when you're added to the list database. Only the
address part is preserved. I even put the comment inside angles to
fool program to pick up everything between angles.
<first.surname(+list.procmail)@example.com>
But I had no luck. They have too good RFC parsers, which throw away
and clean comments like this. Eg. procmail based mailing lists, the
famous `Smartlist', use `formail' to derive the return address and
`formail' does not preserve comments. The above gets truncated to
first(_dot_)surname(_at_)example(_dot_)com
Also many mailing lists send out messages as `Bcc', so your address
is not even available in headers anywhere, neither is this nice RFC
comment. Ah well, but this RFC comment trick works very well in
private communication, virtually all MUAs copy whole contents of a
`From' or `Reply-To' header to `To' header, preserving comments and
you get the benefit of plus addressing. Here is procmail code
to demonstrate reading the PLUS information from RFC comment-plus
field:
RC_EMAIL = $PMSRC/pm-jaaddr.rc # Address explode module
:0
*$ To:\/.*
{
INPUT = $MATCH
INCLUDERC = $RC_EMAIL # Explore grabbed To address
# If COMMENT_PLUS was defined, module found "+"
# address which contained, say, "mail.procmail".
# Save it to folder.
:0 :
* $COMMENT_PLUS ?? [a-z]
$COMMENT_PLUS
}
Pretty simple. And you can put anything inside RFC comment and do
whatever you want with these plus addresses. _NOTE_: there are no
guarrantees that the RFC comment is preserved everytime. Well, the
standard RFC822 says is must be passed untouched, but I'd say it is
90% of the cases where mail is delivered from one server to
another, it is kept.
Example: if you discuss in usenet groups, you could use address
first(_dot_)surname(_at_)example(_dot_)com (First
Surname+usenet.default)
first(_dot_)surname(_at_)example(_dot_)com (First
Surname+usenet.games)
first(_dot_)surname(_at_)example(_dot_)com (First
Surname+usenet.emacs)
first(_dot_)surname(_at_)example(_dot_)com (First
Surname+usenet.linux)