To: field without e-mail address
Reported by David Morrison | June 26th, 2014 @ 05:24 AM
Almost forever, the way to send a message to a list of people without showing them everyone's address has been to use the Bcc: field for the addresses.
But it was necessary to put something in the To: field. Conventionally, this was the name of the group in parentheses, eg,
To: (Basketball Club)
This meant that the recipients saw the message with a To: address like this:
To: (Basketball Club)
And they would immediately know it had been sent to all basketball club members.
Some unenlightened mail clients (cough… cough… Outlook cough… and others cough…) refuse to allow a To: line without an @ in it, even though the standards allow this.
MailMate is in between. It surrounds whatever was typed into the To: field with < >, ie, <(Basketball Club)>
It then tries to send it to the SMTP server. It doesn't work. This is because whatever is inside < > must be an e-mail address with an @.
If MailMate had sent just (Basketball Club) to the SMTP server, it should have been fine provided there was at least one real address in the Cc: or Bcc: headers.
So could I suggest that when parsing an e-mail address in any recipient header, MailMate needs to be a bit cleverer.
For reference the legal forms of address for mail headers are:
xxxxx@yyy.zzz
Xxxx Xxxxxx <xxxxx@yyy.zzz>
xxxxx@yyy.zzz (Xxxx Xxxxxx)
Between < > is always an e-mail address. Between ( ) is always a name associated with the address.
Comments and changes to this ticket
-
benny June 26th, 2014 @ 11:29 AM
- State changed from new to reproduced
This is an interesting problem, but we need to get some facts straight:
- The reason it fails is that MailMate tries to use
“(Basketball Club)” as an argument to RCPT TO for the
SMTP server. This must be enclosed in
<>
according to the standard. To avoid the error MailMate should simply not try to give it to RCPT TO at all. - The actual To header of the message is:
To: (Basketball)
- The third “legal” form in your list is no longer legal according to standard (but still widely used).
- The older standards say that the
()
part is a comment (which can occur in almost any header). It has no real meaning, but historically email clients have used it for the name of a recipient.
Now, I can understand why you would want
(Basketball)
to appear in theTo
header, but I don't like that it's not sanctioned by the standard. The correct way to do it is to use an empty named group like this:Basketball:;
See the end of section 3.4 in RFC 5322.
I tried this and MailMate does send the message with a
To
header like this:To: Basketball:;
But there is also a display bug in MailMate with such group names. It is not displayed in the headers view. I'll consider that a reproducible bug. (Hopefully other email clients handle it better.)
-
David Morrison June 26th, 2014 @ 11:40 AM
Ah ok. It is many years since I was involved with this stuff, and memory is not so good. So a colon and semicolon is the way to do this now. Funnily-enough, I have seen that structure in Eudora going back nearly 20 years, but thought it was just something Eudora did for aliases that had multiple addresses.
I must try it with Outlook.
-
benny June 27th, 2014 @ 11:45 AM
- State changed from reproduced to fixcommitted
Now MailMate displays “Basketball” for a header like
"To: Basketball:;"
. This actually worked in earlier revisions of MailMate as well, but I broke it when trying to handle badly formatted addresses such as"Foo, Bar <foo@bar.com>"
. A book could be written about the edge-cases of recipient email headers...MailMate still does not handle group names well in general (non-empty group lists), but I suspect very few email clients do.
Please Sign in or create a free account to add a new ticket.
With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.
Create your profile
Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป
Mac OS X email client.