Изменить" от: "адрес в Unix" почта"


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

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

[EDIT]

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

Testing
.

доходность

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

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

18 78

18 ответов:

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

  • the - a переключитесь, чтобы применить дополнительные заголовки, указав заголовок From: в командной строке, который будет добавлен к заголовку исходящей почты
  • the $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

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

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

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

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

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

работает для 'mailx', но не 'почта'.

$ 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
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

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

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

что-то вроде этого:

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

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

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

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

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

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

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

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

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

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

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

Я не знаю, если это то же самое с другими ОС, но в OpenBSD mail команда имеет следующий синтаксис:

mail to-addr ... -sendmail-options ...

sendmail имеет опцию-f, где вы указываете адрес электронной почты для поля FROM:. Следующая команда работает для меня.

mail recepient@example.com -f from@example.com

спасибо БО

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

Я просто нашел это и это работает для меня. На man-страницах для mail 8.1 на CentOS 5 это не упоминается. Ибо -f опция, на главной странице написано:

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

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

Я получил это из всех приведенных выше ответов. Ничего не работало для меня, когда я попробовал каждый из них. Я сделал много следов и ошибок, объединив все вышеперечисленные ответы и сделал вывод об этом. Я не уверен, что это работает для вас, но это сработало для меня на 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>'

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

надеюсь, что это помогает.

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

установить реликвия-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")

echo "body" | mail -S from=address@foo.com "Hello"

-S позволяет указать множество параметров строки, безусловно, самый простой способ изменить заголовки и тому подобное.

на CentOS это сработало для меня:

echo "email body" | mail -s "Subject here" -r from_email_address email_address_to

это работает для меня

echo "hi root"|mail -rsawrub@testingdomain.org -s'testinggg' root

на CentOS 5.5 самый простой способ установить значение по умолчанию из домена-это изменить файл hosts. Если файл hosts содержит ваш WAN / public IP-адрес, просто измените первое имя хоста, указанное для него. Например, файл hosts может выглядеть следующим образом:

...
11.22.33.44 localhost default-domain whatever-else.com
...

чтобы сделать его отправить из whatever-else.com, просто измените его так, чтобы whatever-else.com указан первым, например:

...
11.22.33.44 whatever-else.com localhost default-domain
...

Я не могу говорить за любой другой дистрибутив (или даже версию CentOS), но в моем конкретном случае, выше работает отлично.

Эхо "тест" | mailx-r fake@example.com -s 'тест' email@example.com

Он работает в OpenBSD.

что позволило мне иметь пользовательский обратный адрес на Ubuntu 16.04 С UTF-8 кодировка и вложенный файл:

установите почтовый клиент:

sudo apt-get install heirloom-mailx

изменить конфигурацию SMTP:

sudo vim /etc/ssmtp/ssmtp.conf
mailhub=smtp.gmail.com:587
FromLineOverride=YES
AuthUser=???@gmail.com
AuthPass=???
UseSTARTTLS=YES

Отправить сообщение:

sender='send@domain.com'
recipient='recipient@domain.com'
zipfile="results/file.zip"
today=`date +\%d-\%m-\%Y`
mailSubject='My subject on the '$today
read -r -d '' mailBody << EOM
Find attached the zip file.

Regards,
EOM
mail -s "$mailSubject" -r "Name <$sender>" -S replyto="$sender" -a $zipfile $recipient < <(echo $mailBody)

ответы, представленные ранее, не работали для меня на CentOS5. Я установил шавка. У него есть много вариантов. С Mutt вы делаете это таким образом:

export EMAIL=myfrom@example.com
export REPLYTO=myreplyto@example.com
mutt -s Testing chris@example.org