Open Bug 18882 Opened 25 years ago Updated 2 years ago

Support "plussed" addresses

Categories

(MailNews Core :: Composition, enhancement)

enhancement

Tracking

(Not tracked)

People

(Reporter: phil, Unassigned)

References

Details

Regarding the composition of From: headers on one's outgoing mail, it is clear from the various comments attached to bug #17319 that there are varying opinions on the advisability of allowing users excessively easy access to the From: header of outgoing mails that they send. However one of the comments attached to this ``bug'' (really an enhancement request) noted the scenario of incoming e-mails sent to <sales@company.com> and to <support@company.com>, where both sets of incoming e-mails are presumably handled by the same person, and where the e-mails may perhaps even be funneled into the same single POP3 (or IMAP) account on that person's local mail server. I have a concern about that situation and also about a somwhat more sophisti- cated version of the same general sort of situation, e.g. a person who has several different ``identities'', each of which corresponds (in some obvious way) to one or another of that user's IMAP folders. As far as I know, there are two flavors of IMAP server that are in wide- spead use, namely the UW IMAP server and the CMU Cyrus IMAP server. If the information I have read is correct, both of these support so-called "plussed" addresses of the form <user+tag@domain> where the `tag' portion can be used by the IMAP server's associated local delivery agent as a selector which determines which specific folder the incoming message should be delivered to. Plussed addresses are already in use by a number of people... in particular those who use either IMAP or procmail... as a way of pre-sorting their in- coming mail into various folders. For example I might use the address <rfg+foobar@monkeys.com> when I sign up for the FOOBAR mailing list. By using the address <rfg+foobar@monkeys.com> when I sign up, I can get my local mail delivery agent (and/or procmail) to help me with the task of sorting my incoming e-mail by delivering all incoming traffic from the FOOBAR mailing list directly to my private "foobar" folder, rather than into my default IMAP "INBOX" folder. This sort of usage may not be widespread (yet) but it is catching on, I think. It is catching on, in particular, among those who are fortunate enough to be able to fetch their mail from an IMAP server, rather than from a POP3 server. There is a serious problem with this usage however. Unless the Mail User Agent (MUA) provides some support for this use of plussed addresses, the whole scheme becomes more trouble than it is worth. If I sign up for the FOOBAR mailing list using the subscription e-mail address <rfg+foobar@monkeys.com> then whenever I want to post something to that mailing list I must do so from the address <rfg+foobar@monkeys.com>, *NOT* from my un-tagged nominal address <rfg@monkeys.ocm>. (This is required because the FOOBAR mailing list, like most well-administered mailing lists these days, does not accept postings from non-subscribers.) For this reason, even if no other, I and other people would benefit from being able to modify the From: address on our outgoing E-mails. In fact, for us, at least, it would be greatly beneficial if the end user mail client actually provided some support itself for this usage of plussed addresses. Ideally, if I am am using Mozilla as my MUA, and if I currently have my "xyz" folder selected, and if I then begin to either compose a new message or else I begin to reply to an existing message (in the currently selected "xyz" folder) I would really like to have the Mozilla MUA just automatically pop up a composed From: line that looks like: From: "Ronald F. Guilmette" <rfg+xyz@monkeys.com> i.e. it should use the currently selected folder name as the "tag" part of a plussed address... a plussed address which it composes on-the-fly at the moment I begin to compose a new outgoing message. Without this, any attempt to use plussed addresses becomes more trouble than it is worth, because each and every time I try to make a posting to any of the mailing lists I have subscribed to (using plussed addresses) I would have to manually type in the proper (plussed) address that corresponds to the address that is my true ``identity'' with respect to that specific mailing list. For this reason, it would be most helpful if Mozilla could itself be helpful enough to both understand and properly support plussed addresses... at least for some subset of my personal IMAP folders. That having been said, I should also say that the automated plussed-address generation behavior that I described above will obviously not be desirable for all mail users or even for all of the folders of any given mail user. Rather, the ideal mail user agent (MUA) would allow the end user to explicitly specify his/her From: ``identity'' separately for each of that user's separate IMAP folders. But even this per-folder selection should be made as painless as possible, and when the time comes to specify the From: address to be associated with a given folder (say, for example, folder "abc") the user should be offered a menu of reasonable pre-canned choices of possible From: addresses for the given folder, like for instance: <user@domain> <user+abc@domain> <abc@domain> other {fill in your own text} (The third case in the list above might work out very nicely for the postulated case of the single user answering e-mail for <sales@company.com> and also for <support@company.com>... at least if those two addresses were gatewayed into two different IMAP folders, both of which being owned by the relevant user.) That's about all I had to say, other than to say that I seriously hope that Mozilla 5.0 will ship with good and proper support for the increasingly popular combination of IMAP and plussed addresses, along the general lines I've noted above. (I, at least, actually *cannot* use Mozilla as my mail client at the present time because of its current lack of support for plussed addresses.) Thank you all for your attention.
Whiteboard: [HELP WANTED]
I'd just like to add that plussed addresses have been in use since around 1987, (originally part of CMU's Andrew Messaging System) and really doesn't show any sign of catching on any time soon. However, I think plussed addresses could be just a special case of multiple identities per account. There is backend support for THIS. Here's how I could see handling plussed addresses though... and it requires some work from MIME and mail composition. Basically, we need MIME or mail composition to figure out, at composition time, what the identity in the currently displayed message is. It needs to look at the "To:" "CC:" or "Resent-To:" header to figure out who the mail was addressed to... this can then become the default identity when the compose window opens. I'll file a bug on that. Once that feature is implemented, then we should just have a preference, something like "mail.ignore_identity_chars", "+" - where the identity-detection code would ignore any characters after the "+" when trying to determine the identity, and would possibly tack those characters onto the identity in the From header int he compose window
adding ronald to CC
Regarding Alec's point about plussed addresses not catching on, let me just say that I think that this is a classic chicken-and-egg problem. Maybe plussed addresses WOULD start to become more widely used than they already are, *IF* mail client software (e.g. Messenger) provided what would appear to be the minimal level of support for plussed addresses necessary to make them really usable. (Of course, it would also help a lot of more mail administrators started providing IMAP service, in addition to POP3 service, and if they arranged for mail addressed to plussed addresses to be delivered to distinct folders. But again, its a chicken and egg problem. The mail admins won't do any of that until there seems to be a demand for it, but end user demand for this functionality won't materialize until more people know that such nice things are even possible, and that won't happen until more mail client and more mail server start to support plussed addresses.)
that's a good point... I do like the feature, and would love it if we supported it...
Depends on: 18906
ok, I filed the other bug for even-smarter-identity choice at compose time.
At the risk of boring you guys even more than I already have, I'd like to talk in even a bit more depth about this question of plussed addresses and message composition. (Keep reading. The payoff is that I think that I have a rather simple solution that will allow me and other to use plussed addresses quite effectively.) First let me say that yes, Alec has a very good point about how (ideally) if one is replying to a message that was sent to you via one of your public E-mail aliases, e.g. <alias1@domain>, then ideally, if you then go to com- pose a reply to that message, your default From: ``identity'' for that specific reply should be <alias1@domain>. That's obvious. The bad news (relative to that ideal situation) is twofold... First even though RFC 1869 (ESMTP) added an (optional) ORCPT= parameter for the RCPT TO command (through which the _original_ E-mail address to which a message was addressed could be preserved, even across multiple .forward and alias mungings of the actual envelope recipient address, that capability is NOT widely used/supported (yet?) and thus, it is REALLY hard to know what the real ``original'' recipient address actually was at the moment the original sender hit the SEND button. (And that is what you would like to have in order to fully implement what Alec talked about.) Second, and perhaps more importantly, not all of the outgoing messages I send are replies. Sometimes they are just brand new messages. So you still have to answer the question ``Where does the default From: address come from for those?'' So anyway, setting aside (for the moment) the idea of generating a default From: header based upon the address to which the message you are replying to was sent, I have what I think is a reasonably simple proposal for a solution to the problem that I first proposed, i.e. how to get the default From: address for an outgoing message that the user is composing to be an address of the form: <user+folder@domain> where ``folder'' is just the name of the most recently visited folder. Quite simply, I'd like to propose that whatever string the user specifies as his e-mail address for outgoing mail (i.e. the one that gets stashed in the `email' field of the nsIMsgIdentity.idl thingy) no longer be treated just as literal string, but rather as a string which is routinely subjected to some minimalist sort of INTERPOLATION. Specifically, if the given address string contains TWO CONSECUTIVE PLUS SIGNS, then this indicates that that portion of the address should be replaced (nominally) by a single plus sign and then the name of the most-recently-visited folder. (If the most recently visited folder is "INBOX" however, this is treated as a special case, and the two plus signs are then replaced by nothing.) This simple interpolation scheme for the user's e-mail address would allow me, for example, to specify my e-mail address to Messenger as: <rfg++@monkeys.com> (at least for the specific IMAP server that I have an account on and that I know supports plussed addresses) and this alone would be sufficient to make IMAP folders and plussed addresses work ``right'' for me. And with this approach, plussed addresses would work ``right'' both for the case where I am replying to messages and also when I am composing fresh messages (as long as I remember to visit the relevant folder first, because I start to compose any message that I want to be associated with the relevant folder's asociated ``identity''). So? Whadaya think? Simple, no? The advantages of this interpolation scheme should be obvious. The most important one is that the documentation of this interpolation feature could be neatly tucked away in some ``advanced'' portion of the documentation (where power users could find it but ordinary end lusers wouldn't see it OR become confused by it) and best of all, you wouldn't have to make _any_ obvious changes to your existing carefully-designed UI.
ok, the plus sign is a whole lot bigger issue than I thought :) I forgot that the default + behavior was so smart on the Cyrus server :) (In the old AMS world, we had to write LISP scripts to parse out the text after the + and the choose an appropriate folder from there!) well, the other bug is file (18906) to allow for the auto choosing of reply during compose based on the currently displayed message, and will definately benefit the + people So I'll try to explain what needs to be done in the Mozilla world for this to happen. we need to create a "phantom" nsIMsgIdentity at compose time to serve as a temporary identity that refers to the current folder. This could work... it would involve slight tweaks to the compose code so that we pass the identity itself rather than the identity key (because the "phantom" identity would not live in the account manager)this would come in to the compose window as a parameter of openDialog() I think. We'd of course do all of this based on some preference.
I don't want this to spiral too far off topic, but I was going to suggest the "last visited folder" approach, but a little differently. Instead of changing your "from" header at all, just leave it be user@domain.com. Then, in the properties for the _folder_, have a checkbox stating "append +folder to outgoing mail". This way, if that folder is open, the outgoing mail header would have the +folder automatically appended, under the assumption that if you are composing a new message from this folder, you want replies to go to this folder (ie, to that list). This does not completely solve the problem, however: you may be in a folder but not want to send it to the list. Rather than forcing the user to select a non-plussed folder, display the "From:" header in the messenger window, and have the "+list" (if not highlighted by default) be editable. This could also apply for folders not maked as "plussed". Display the From: line, and let text be entered before the first @ symbol if preceeded with a "+". I don't know all the RFC rules, but special filtering will of course be needed (no '!' marks, no '@', etc.) An aside reason I like this setting being at a folder level (even if editing the from header is allowed, I think that folder level settings are still needed) is because I procmail incoming messages. However, it seems that Messenger only checks the special "Inbox", and I would like to see a folder flag stating "mark as incoming mail folder". Then when "Get Messages" is checked, or MozBiff runs, it'll check all my incoming folders. xbiff++ did this well (IIRC), with different events based on the folder or any other criteria.
I'd just like to add that at CMU we have support for plussed addresses with POP as well as IMAP, and they get used a *lot*. It's great to give out a different email address every time you fill in a Web form --- when someone passes on your address to someone else, you know right away who it was. They may not have "caught on" everywhere, but I'd never want to go without them. BTW, our system supports = as well as +, but that may be a local quirk.
Keywords: helpwanted
Summary: [HELP WANTED] Support "plussed" addresses → Support "plussed" addresses
Whiteboard: [HELP WANTED]
Re rfg's suggestion about xyz++@domain: but what happens for someone whose address really *is* user++@domain? They'll have all sorts of strange things happening to their e-mail without knowing why. Specifying your address as xyz++@domain to activate a specific option brings to mind UI monstrosities like making the user enter \n for a new line or whatever. Better, I think, to have a pair of radio buttons in the account setup, to specify whether you want a normal identity set or a `plus-powered' identity set for that account. Re ccurtis's suggestion of some folders being plus-powered and some not: that might be more trouble than it was worth. First, you'd need little plus signs stamped on the icons for the plus-powered folders, to stop people from wondering why something had or hadn't happened when they'd selected a particular folder. And second, you'd need a non-trivial UI design for entering the post-plus part of the address if a non-plus-powered folder had been selected at the time. A nice touch would be to be able to drag a folder from a mail window onto the From field in a composition window, which would magically change the From address to <user+foldername@domain>.
I have two brief points. First, I am forced to agree with both of the points made by <mpt@mailandnews.com>. He is correct that my (hack?) idea of allowing users to specify some quirky form of personal return address in order to avail themselves of some extra, and very magic on-the-fly personal return address interpolation is rather entirely kludgy and sub-optimal, and that this would be better done by adding a radio button to select this option to the Communicator user interface. I also agree that it would be an unnecessary hassle (and also overkill) to try to support functionality allowing some folders to be ``plus powered'' while others are not. The only other point I want to make is that there is one big fallacy in everything I have said so far with regards to this Bugzilla thread, namely my implicit assumption that if a mail message comes in for <user+xyz@domain> that it will in fact be delivered to the `xyz' folder of `user'. That sort of one- to-one mapping of (what I personally call) the `tag' part of the address to folder names may not necessarily hold in some cases. On some systems, now or in the future, it might perhaps be possible for the end user to request that mail sent to <user+xyz@domain> be delivered instead to that user's `abc' folder (rather than to his `xyz' folder). This possibility raises a new problem for any sort of mail client that is going to attempt to infer a `proper' sender address for each new reply message the end user may begin to compose. Obviously, if the user is replying to a message that was addressed to <user+xyz@domain>, but one that was actually *delivered* to that user's `abc' folder, then it would be inappropriate to infer, automatically, a sender address of <user+abc@domain> when the end user goes to compose a reply to that newly received message. Rather, because the sender of the original message may only know the user in question by his <user+xyz@domain> ``identity'' (and because that original message sender may perhaps even have his message reception filters set to reject mail from any and all other parties) it will be important to insure that even though the message was delivered to the user's `abc' folder, the message itself should still carry with it some marking or indication that it was ORIGINALLY ADDRESSED to the address <user+xyz@domain>, even though it may have ended up in the recipient's `abc' folder... either via some automated magic on the server side, or because the end user manually moved it to that folder sometime after it was delivered. Attaching this additional ``original recipient address'' info to each message is clearly the responsibility of the MTAs through which the message passes on its way to its destination, together with the terminal Mail Delivery Agent, and one or another of these programs should, ideally, arrange for the ``original recipient address'' to be attached to the message, perhaps via an `X-Really-To:' or an `X-Original-Recipeint:' header, or some such thing. (I previously described in this thread some of the behind-the-scenes machinations in MTAs that might be necessary to make this happen. But that stuff is clearly beyond the scope of the discussion here about mail *clients*, so I will say no more about that.) So anyway, it is the responsibility of the MTAs and the local/final MDA to somehow attach the ``original'' recipient address to each delivered message, and this can probably be accomplished most easily via some new X- mail header. Once that is accomplished... and *I* already have an MTA/MDA combination that does it... it is then the responsibility of the mail *client* to be smart enough to snatch that original recipient address information out of any message which the end user has just asked to compose a reply for. The mail client should then use that ``original recipient'' address in both the From: header AND also as the SMTP envelope MAIL FROM address for the reply that the user composes. As I understand it, this exact sort of capability/functionality is already present and available in the Eudora mail client. Specifically, I have been informed that one can instruct Eudora to use the contents of some arbitrary end-user-selected mail header (e.g. X-Really-From:) as the From: address when composing outgoing replies. I am currently engaged in building some fancy server-side software which will in fact allow the end user to specify that incoming mail addressed to <user+xyz@domain> be, in effect, redirected and delivered to that user's `abc' folder instead. But because Mozilla/Communicator currently lacks the specific client-side functionality described above (for Eudora), which is clearly the minimum functionality necessary to make this stuff work seemlessly (from the end user's perspective) my current plan is to just tell all of my end users to get Eudora. I *do* wish that it were otherwise, and I do wish that I could also recommend Mozilla/Netscape, but without the functionality I just described, I don't believe that will be possible.
A minor note about 'plussed' addresses. Sometimes they are 'minused' as well. To pick an example entirely at random, acwest-bugzilla@mail.bdkw.yi.org.
acwest: sometimes they *are* minused, or in my case underscored. However, there is wide-spread existing support for the "plus" convention, and it conflicts with far fewer standard email addresses. For example, many mailing list managers use dashes (minuses) to separate list names and actions (listname-subscribe@) and many places use underscores as part of a username (lastname_f@) whereas the plus sign doesn't have such widespread use outside of this convention. -matt
I hadn't seen underscore before... In the case of the hyphen separator, this is the default on a qmail based system. The plus separator is the default on sendmail, making it a lot more common. My thought is to make this user-configurable, although a default separator of '+' makes sense.
Product: MailNews → Core
Filter on "Nobody_NScomTLD_20080620"
QA Contact: lchiang → composition
Product: Core → MailNews Core
Keywords: helpwanted
Priority: P3 → --

Receiving a message at user+secret@domain.tld should reply to user+secret@domain.tld, but TB instead replies to user@domain.tld which makes this a defect.

This has caused many problems, including email ticket systems being unable to rely on from addresses so they must use custom headers.

Whoever thought it was a good idea to tamper with the from address should have all their code reviewed.

Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.