Я сделал следующее в Ubuntu 12.04:
echo "some body" | mailx -s "some subject" recipient@example.de -- -f sender@example.de
это сгенерировало сообщение как это:
To: recipient@example.de
Subject: some subject
From: sender@example.de
Затем я обновил к Ubuntu 14.04, и теперь я добираюсь
To: -f@example.de, sender@example.de, recipient@example.de
Subject: some subject
From: $ACCOUNTNAME@example.de
Так, -f
больше не работает, и я получаю поврежденное электронное письмо.
Почему это и как я могу зафиксировать его?
Я использую nullmailer.
Я использую bsd-mailx.
$ ls -l $(which mailx)
lrwxrwxrwx 1 root root 23 Okt 23 23:12 /usr/bin/mailx -> /etc/alternatives/mailx
$ ls -l /etc/alternatives/mailx
lrwxrwxrwx 1 root root 18 Okt 23 23:12 /etc/alternatives/mailx -> /usr/bin/bsd-mailx
Как обходное решение я могу установить From:
заголовок вручную с -a $EXTRAHEADER
и отбросить -- -f
вещь:
echo "some body" | mailx -s "some subject" recipient@example.de -a "From: sender@example.de"
Похоже, что патч безопасности в начале января изменил поведение для --
.
От журнала изменений в https://launchpad.net/ubuntu / + source/bsd-mailx/8.1.2-0.20111106cvs-1ubuntu0.1
bsd-mailx (8.1.2-0.20111106cvs-1ubuntu0.1) точная безопасность; обновление системы защиты urgency=medium
- : окружите управляют, чтобы инжекция
- Применила патчи OpenBSD от Todd Miller (взятый от обновления Debian):
80-remove_T.patch <литий> (удаляют недокументированную/устаревшую-T опцию) литий> 81-minus_f.patch <литий> (корректируют-f, обрабатывающий) литий> 82-expandaddr.patch <литий> (фиксируют CVE-2014-7844) литий> 83-nosendmail.patch <литий> (делают - работают на подавление парсинга опции) литий>
- CVE-2014-7844 - Marc Deslauriers понедельник, 05 января 2015 11:40:44 - 0500
, Ваше обходное решение корректно,-a опция является лучшей для установки От заголовка.
у меня все еще есть проблема, где -f
опция установила заголовок Обратного тракта, который у меня не было удачи при выполнении с -a
. Я получил это от https://groups.google.com/forum/#! topic/list.postfix.users/0AmocPqLUZo
Я закончил тем, что использовал /usr/sbin/sendmail
(обеспеченный постфиксом) вместо эти mail
команда, которая связалась с bsd-mailx
в моей системе:
echo -e "Subject:some subject\n\nsome body" | /usr/sbin/sendmail -r "sender@example.com" "recipient@example.de"
Три вещи рассмотреть:
-r
для определения обратного канала (и отадресного) -s
для предмета. Вместо этого добавьте Subject:
почтовый заголовок в эти printf
сопровождаемый двумя новыми строками \n\n
echo
действительно потребности произвести эти две новых строки, не символы \n\n
, таким образом Вам нужно echo -e