Измените адрес «От:» в Unix «почта» - PullRequest
82 голосов
/ 10 сентября 2008

Отправка сообщения из командной строки Unix с использованием mail TO_ADDR приводит к получению электронного письма от $USER@$HOSTNAME. Есть ли способ изменить адрес «От:», вставленный mail?

Для записи я использую GNU Mailutils 1.1 / 1.2 в Ubuntu (но я видел такое же поведение с Fedora и RHEL).

[EDIT]

$ mail -s Testing chris@example.org                                                                  
Cc: 
From: foo@bar.org

Testing
.

1011 * выходы *

Subject: Testing
To: <chris@example.org>
X-Mailer: mail (GNU Mailutils 1.1)
Message-Id: <E1KdTJj-00025z-RK@localhost>
From: <chris@localhost>
Date: Wed, 10 Sep 2008 13:17:23 -0400

From: foo@bar.org

Testing

Строка "From: foo@bar.org" является частью тела сообщения, а не частью заголовка.

Ответы [ 19 ]

96 голосов
/ 19 декабря 2008

В моей версии почты (Debian linux 4.0) следующие опции работают для управления адресами источника / ответа

  • переключатель -a для применения дополнительных заголовков, предоставляющий заголовок From: в командной строке, который будет добавлен к заголовку исходящей почты
  • переменная окружения $ REPLYTO определяет заголовок Reply-To:

поэтому следующая последовательность

export REPLYTO=cms-replies@example.com
mail -aFrom:cms-sends@example.com -s 'Testing'

Результатом, в моих почтовых клиентах, является письмо от cms-sends@example.com, на которое все ответы будут по умолчанию отправляться cms-replies@example.com

Примечание: Пользователи Mac OS: у вас нет -a, но у вас есть $ REPLYTO

Примечание (2): Пользователи CentOS, многие комментаторы добавили, что вам нужно использовать -r, а не -a

NB (3): Этому ответу не менее десяти лет (1), имейте это в виду, когда вы заходите из Google.

42 голосов
/ 13 января 2010

На Centos 5.3 я могу сделать:

mail -s "Subject" user@address.com -- -f from@address.com < body

Двойная черта не позволяет почте анализировать аргумент -f и передает ее самой sendmail.

21 голосов
/ 23 декабря 2010

Команда GNU mailutils 'mail' не позволяет вам сделать это (по крайней мере, легко). Но если вы установите 'heirloom-mailx', его почтовая команда (mailx) будет иметь опцию '-r', чтобы переопределить поле по умолчанию '$ USER @ $ HOSTNAME' из поля.

echo "Hello there" | mail -s "testing" -r sender@company.com recipient@company.com

Работает для «mailx», но не для «mail».

$ ls -l /usr/bin/mail
lrwxrwxrwx 1 root root 22 2010-12-23 08:33 /usr/bin/mail -> /etc/alternatives/mail
$ ls -l /etc/alternatives/mail
lrwxrwxrwx 1 root root 23 2010-12-23 08:33 /etc/alternatives/mail -> /usr/bin/heirloom-mailx
13 голосов
/ 25 июля 2012
mail -s "$(echo -e "This is the subject\nFrom: Paula <johny@paula.com>\n
Reply-to: 1232564@yourserver.com\nContent-Type: text/html\n")" 
milas.josh@gmail.com < htmlFileMessage.txt

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

7 голосов
/ 13 декабря 2011

Плюс хорошо использовать -F option для указания имени отправителя.

Примерно так:

mail -s "$SUBJECT" $MAILTO -- -F $MAILFROM -f ${MAILFROM}@somedomain.com

Или просто посмотрите на доступные варианты: http://www.courier -mta.org / sendmail.html

5 голосов
/ 25 сентября 2013

Также можно установить как имя От, так и адрес, используя что-то вроде:

 echo test | mail -s "test" example@example.com -- -F'Some Name<example2@example.com>' -t

По некоторым причинам передача -F'Some Name' и -fexample2@example.com не работает, но передача -t в sendmail работает и "проста".

4 голосов
/ 10 сентября 2008

Вот несколько вариантов:

  • Если у вас достаточно привилегий, настройте sendmail так, чтобы он выполнял перезаписи с помощью таблицы шаблонов

  • Напишите весь заголовок самостоятельно (или отправьте его по почте себе, сохраните все сообщение со всеми заголовками, отредактируйте и отправьте его с помощью rmail из командной строки

  • Отправлять напрямую с помощью sendmail, использовать флаг командной строки "-f" и не включать в сообщение строку "От:"

Это не совсем одно и то же, но я оставлю это вам, чтобы вы посмотрели дальше.

На моем портативном компьютере у меня есть sendmail, аутентифицирующаяся как клиент на сервере исходящей почты, и я использую универсальные средства, чтобы возвратная почта приходила на другую учетную запись. Отлично работает. Я собираю входящую почту с fetchmail.

3 голосов
/ 01 марта 2015

В Debian 7 я все еще не мог правильно задать адрес отправителя, используя ответы на этот вопрос (всегда будет именем хоста сервера), но решил его таким образом.

Установить heirloom-mailx

apt-get install heirloom-mailx

убедитесь, что это по умолчанию.

update-alternatives --config mailx

Составьте сообщение.

mail -s "Testing from & replyto" -r "sender <sender@example.com>" -S replyto="sender@example.com" recipient@example.net < <(echo "Test message")
3 голосов
/ 25 мая 2011

Спасибо BEAU

mail -s "Subject" user@address.com -- -f from@address.com

Я только что нашел это, и это работает для меня. Страницы руководства для почты 8.1 на CentOS 5 не упоминают об этом. Для опции -f на странице руководства написано:

-f Чтение сообщений из файла, названного операндом файла вместо системного почтового ящика. (См. Также папку.) Если файловый операнд не указан, считывайте сообщения из mbox вместо системного почтового ящика.

Так что в любом случае это здорово найти, спасибо.

3 голосов
/ 30 сентября 2014

Я получил это из всех приведенных выше ответов. Ничто не помогло мне, когда я попробовал каждый из них. Я сделал много следов и ошибок, объединив все вышеупомянутые ответы и пришел к выводу на этом. Я не уверен, что это работает для вас, но у меня это работало на Ununtu 12.04 и RHEL 5.4.

echo "This is the body of the mail" | mail -s 'This is the subject' '<receiver-id1@email.com>,<receiver-id2@email.com>' -- -F '<SenderName>' -f '<from-id@email.com>'

Можно отправить письмо любому числу людей, добавив любое количество идентификаторов получателей, и письмо будет отправлено Имя отправителя с from-id@email.com

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...