mail(1) cannot send to address containing an equals sign
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
mailutils (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
Binary package hint: mailutils
Ubuntu 8.04, mailutils 1:1.1+dfsg1-3.1.
Attempting to unsubscribe from a mailing list, I did
mail announce-
(`$private' is me replacing a simple plain domain name I wish to keep
private.)
mail(1) returned without error. Later, I receive various bounces. mail
gave the Postfix SMTP server on localhost three separate recipient
addresses.
<email address hidden>
<=@
<$<email address hidden>>
Postfix has added the `@inputplus.co.uk' to those addresses it was given
that didn't have domain names. So mail(1) handed over
announce-
=
$<email address hidden>
IOW, it seems to consider the equals sign as a word boundary and split
the desired address there, resulting in three addresses, one just `='.
I suspect this is because during argument processing, mail(1) seems to
turn the contents of files like ~/.mailrc into command line arguments
that precede those given by the user, and the processing of these
handles things like `foo=bar' to set a variable. This probably splits
it into `foo', `=', `bar', and it is later treated as three destination
email addresses.
Note, other destinations like
mail foo,bar </dev/null
result in email being sent to `foo' and `bar'. I don't know if this is
deliberate, but it doesn't appear to be documented in
http://
Regardless, mail(1) cannot send to the valid unsubscribe address
mandated by a mailing list and is erroneously splitting the address into
parts.
This is still present in 9.04, with mailutils 1:1.2+dsfg1-4