#832 ✓fixreleased
David Morrison

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

    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 the To 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

    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

    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.

  • benny

    benny October 15th, 2014 @ 03:32 PM

    • State changed from “fixcommitted” to “fixreleased”

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.

New-ticket Create new ticket

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.

Shared Ticket Bins

People watching this ticket

Pages