Для имени пользователя "A&B
"
[abuser@myserver] chfn -f "A&B"
Changing finger information for abuser
Password:
Finger information changed.
[abuser@myserver] mail -s Test myemail@mycompany.com
Hello World!
Cc:
[abuser@myserver]
Когда придет это письмо, "&
"заменяется именем пользователя в поле" От "электронного письма.
From: AAbuserB [abuser@myserver]
Такое поведение вызвано обработкой почтовым транспортным агентом (MTA) &
символов в имени почтового ящика в /etc/passwd
Из страница руководства passwd:
Поле gcos - это настоящее имя пользователя, а также информация, передаваемая в заголовке почтового сообщения. (Это поле называется gcos-field по историческим причинам.) Символ & (амперсанд) в этом поле обозначает имя входа (в тех случаях, когда имя входа появляется в реальном имени пользователя).
Обходной путь в этом случае - явно установить адрес От в почтовом клиенте.
Например, используя mutt
(как предлагает @mailq):
~/.muttrc
set realname="A&B"
set from="ab@myserver"
set use_from=yes
Отправка тестового электронного письма ...
echo "Test body" | mutt -s "Test" myemail@mycompany.com
Вроде нормально работает.
Попробуйте использовать цитируемую кодировку для печати:
chfn -f "=?ISO-8859-15?Q?A=26B?="
где =26
это амперсанд. Выглядит некрасиво, но должно помочь.
Редактировать: Это не mail
, но затем вам следует попробовать другие альтернативы: использовать sendmail (интерфейс вашего MTA, а не сам sendmail). Или mutt
также подходит для отправки писем по сценарию. В mail
в этом случае функциональность команды слишком ограничена. И если вам действительно нужен mail
тогда вам нужно написать оболочку с именем mail
что внутренне вызывает mutt
для отправки.
Попробуйте с
mail -a "From: A&B <abuser@myserver>" -s Test myemail@mycompany.com