Изменить" от: "адрес в 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 ответов:
в моей версии Почты (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
на 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), но в моем конкретном случае, выше работает отлично.
что позволило мне иметь пользовательский обратный адрес на
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)