Почтовый ящик показывает имя отправителя как «Apache», потому что почта, которую я автоматически отправляю, отправляется из программы Perl CGI. Как изменить его на что-то другое?
Как изменить имя отправителя (не адрес электронной почты) при использовании почтовой команды Linux для автоматической отправки почты?
Ответы (6)
Вам просто нужно добавить заголовок From:
. По умолчанию его нет.
echo "Test" | mail -a "From: Someone <[email protected]>" [email protected]
Вы можете добавить любые пользовательские заголовки, используя -a
:
echo "Test" | mail -a "From: Someone <[email protected]>" \
-a "Subject: This is a test" \
-a "X-Custom-Header: yes" [email protected]
mail
. Можете ли вы проверить, работает ли он с пользовательским заголовком?
- person sam hocevar; 01.07.2011
From: Someone <[email protected]>: No such file or directory
Как будто адрес электронной почты обрабатывается как каталог. Обе команды не работают в Fedora 17. Вы передали строку, которая не является файлом, в параметр «-a», это не сработает.
- person Eric Leschinski; 14.11.2012
mail
ожидают, что -a
будет передана строка, а не файл. Какое программное обеспечение электронной почты вы используете в Fedora?
- person sam hocevar; 15.11.2012
mail -s "$(echo -e "This is the subject\nFrom: Paula <[email protected]>\n
Reply-to: [email protected]\nContent-Type: text/html\n")"
[email protected] < htmlFileMessage.txt
приведенное выше мое решение ... просто замените «Паула» на любое имя, которое вы хотите, например, Джонни Браво ... любые дополнительные заголовки могут быть добавлены сразу после и перед ответом на ... просто убедитесь, что вы знаете синтаксис заголовков перед добавление их .... это отлично сработало для меня.
mail -s "$(echo -e "This is the subject\nFrom: Paula <[email protected]> Reply-to: [email protected]\nContent-Type: text/html\n")" [email protected] < htmlFileMessage.txt
- person Eric Leschinski; 14.11.2012
Вы можете использовать опцию «-r», чтобы установить адрес отправителя:
mail -r [email protected] -s ...
Если вы также хотите указать свое настоящее имя в поле «от кого», вы можете использовать следующий формат
mail -r "[email protected] (My Name)" -s "My Subject" ...
-r
— это GNU-изм. Недоступно в BSD.
- person jwd; 27.07.2017
Если заголовок From: не указан в заголовках электронной почты, MTA использует полное имя текущего пользователя, в данном случае «Apache». Вы можете редактировать полные имена пользователей в /etc/passwd
Это зависит от того, о каком адресе отправителя вы говорите. Адрес отправителя, видимый в почтовой программе получателей, извлекается из заголовка «От:». который, вероятно, можно легко установить из вашей программы.
Если вы говорите об адресе отправителя конверта SMTP, вы можете передать аргумент -f двоичному файлу sendmail. В зависимости от конфигурации сервера вам может быть запрещено делать это с пользователем apache.
из справочной страницы sendmail:
-f <address>
This option sets the address of the envelope sender of a
locally-generated message (also known as the return path).
The option can normally be used only by a trusted user, but
untrusted_set_sender can be set to allow untrusted users to
use it. [...]
В Ubuntu 14.04 ни одно из этих предложений не сработало. Postfix переопределит пользователя, вошедшего в систему, в качестве отправителя. Сработало следующее решение, указанное по этой ссылке --> Change адрес исходящей почты от root@servername - postfix sendgrid в стойке
ШАГИ:
1) Убедитесь, что это установлено в /etc/postfix/main.cf:
smtp_generic_maps = hash:/etc/postfix/generic
2) echo 'www-data [email protected]' >> /etc/postfix/generic
3) sudo postmap /etc/postfix/generic
4) перезапуск постфиксной службы sudo