Почтовый ящик показывает имя отправителя как "Apache", потому что почта, которую я обрабатываю, отправляется из программы Perl CGI. Как изменить его на что-то еще?
Как изменить имя отправителя (а не адрес электронной почты) при использовании команды linux mail для автоматической отправки почты?
Ответ 1
Вам просто нужно добавить заголовок 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]
Ответ 2
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
выше мое решение. Просто замените "Paula" на любое имя, которое вы хотите, например, Johny Bravo.. любые дополнительные заголовки могут быть добавлены сразу после ответа и до ответа... просто убедитесь, что вы знаете свою синтаксис заголовков перед их добавлением.... это отлично сработало для меня.
Ответ 3
Вы можете использовать параметр "-r" для установки адреса отправителя:
mail -r [email protected] -s ...
Если вы также хотите включить свое реальное имя в поле, вы можете использовать следующий формат
mail -r "[email protected] (My Name)" -s "My Subject" ...
Ответ 4
Если в заголовках электронной почты не указан заголовок From:, MTA использует полное имя текущего пользователя, в данном случае "Apache". Вы можете редактировать полные имена пользователей в файле/etc/passwd
Ответ 5
Это зависит от того, какой адрес отправителя вы говорите. Адрес отправителя, видимый в почтовой программе получателей, извлекается из заголовка "From:". которые, вероятно, могут быть легко установлены из вашей программы.
Если вы говорите о адресе отправителя конверта SMTP, вы можете передать аргумент -f в двоичный файл sendmail. В зависимости от конфигурации сервера вам не разрешается делать это с пользователем Apache.
из sendmail manpage:
-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. [...]
Ответ 6
В Ubuntu 14.04 ни одно из этих предложений не работало. Postfix будет переопределяться с зарегистрированным системным пользователем в качестве отправителя. В результате было указано следующее решение, перечисленное по этой ссылке → Изменить адрес исходящей почты от root @servername - postfix postgrid postclock
ШАГОВ:
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 service postfix