Как установить команду From email address for mailx?

Я работаю над сценарием KornShell (ksh), запущенным на сервере Solaris, который будет отправлять электронное письмо при выполнении условия ошибки. Я отправляю электронное письмо через mailx.

вопрос: Как установить адрес электронной почты " от " в команде mailx?

Текущий Код:

echo ${msg_txt} | mailx -s "Script Failure" ${to_email}

Примечание: команда работает нормально, однако "от" - это имя пользователя, с которым я запускаю скрипт, и я хотел бы для этого другого адрес электронной почты.

Как бы я это сделал?

7 ответов


вы можете использовать опцию "-r", чтобы установить адрес отправителя:

mailx -r me@example.com -s ...

параметр"- r " недопустим в моих системах. Мне пришлось использовать другой синтаксис для поля "From".

-a "From: Foo Bar <foo.bar@someplace.com>"

Если вы также хотите включить свое настоящее имя в поле from, вы можете использовать следующий формат

mailx -r "me@example.com (My Name)" -s "My Subject" ...

Если у вас есть не-ASCII символы в вашем имени, как мой AEÆoeøaaå (Æ= C3 86, ø= C3 B8, å= C3 A5), вы должны закодировать их следующим образом:

mailx -r "me@example.com (My =?utf-8?Q?AE=C3=86oe=C3=B8aa=C3=A5?=)" -s "My Subject" ...

надеюсь, что это может сэкономить кому-то час тяжелой работы / исследований!


на debian где bsd-mailx установлен по умолчанию не работает. Однако вы можете использовать mailx -s subject recipient@abc.com -- -f sender@abc.com вместо. Согласно man-странице, вы можете указать параметры sendmail после --.


пакета nail обеспечивает расширенный интерфейс mailx, как. Он включает в себя .

на Centos 5 Установка пакета mailx дает вам программу под названием mail, который не поддерживает mailx параметры.


на macOS Sierra, создание ~/.mailrc с настройкой smtp сделал трюк:

set smtp-use-starttls
set smtp=smtp://smtp.gmail.com:587
set smtp-auth=login
set smtp-auth-user=youremail@gmail.com
set smtp-auth-password=yourpass

затем отправить почту из CLI:

echo "your message" | mail -s "your subject" to_email@gmail.com

на Ubuntu Bionic 18.04 это работает по желанию:

$ echo -e "testing email via yourisp.com from command line\n\nsent on: $(date)" | mailx --append='FROM:Foghorn Leghorn <fleghorn@yourisp.com>' -s "test cli email $(date)" -- recipient@acme.com