Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doesn't appear to distinguish extended mailboxes #35

Open
Qix- opened this issue Oct 24, 2017 · 5 comments
Open

Doesn't appear to distinguish extended mailboxes #35

Qix- opened this issue Oct 24, 2017 · 5 comments

Comments

@Qix-
Copy link

Qix- commented Oct 24, 2017

In an email address, you can have [email protected], where the mail is delivered to [email protected] and the mail server (generally) ignores the +bar.

It'd be great if this library could parse that portion of the email address, allowing consumers to reconstruct the base email address sans the extended mailbox label.

@jackbearheart
Copy link
Owner

This could be a nice feature. It looks like people sometimes call this "sub-addressing" or "tags". I assume that all servers implementing this implement it by "split on the first + sign". If anyone can point me to a reasonable spec/rfc on how sub-addressing works, we could add it to the library, but I'm hesitant to add a function where all it does is "split on the first + sign" without having some kind of standard. How would a consumer of the library use this reliably unless they know the receiving mail server's implementation?

So, until then, it's just:

> const local = addrs.parseOneAddress('[email protected]').local;
> local.substring(0, local.indexOf('+'));
'foo'

@taxilian
Copy link

The spec for subaddressing is RFC 5233: https://tools.ietf.org/html/rfc5233 -- it leaves a lot up to the implementor, but the most common use case that I have seen you can just split to the first plus sign, I believe.

@al45tair
Copy link

The separator character sequence is unspecified by the RFC (intentionally). I think the '+' syntax originated with Postfix; qmail supported '-' instead. Postfix is configurable and actually allows the specification of any character (set) you like; it doesn't support multi-character separators. Gmail I suspect only supports '+'.

One other comment I have is that I'd strongly discourage websites from attempting to strip subaddresses. If the user has given you a subaddress, they mean for you to use it, and you can't know in advance exactly how the subaddress is formatted or even if '+' is the delimiter. Separating out subaddresses might be a useful feature of an email parsing library where it's being used by mail clients or other user-side utilities, however.

@taxilian
Copy link

While I agree it's a bad idea to strip subaddresses there are still valid use cases -- I have a "global unsubscribe" option on my site and I prefer it to block the address totally, including any subaddresses.

@cmawhorter
Copy link

fwiw in addition to the plus, gmail strips out a subset of characters. for example [email protected] is the same as [email protected] and both deliver. i'd bet they allow [email protected] too but the gmail client doesn't

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants