Подтвердить что ты не робот

Как изменить имя отправителя (а не адрес электронной почты) при использовании команды linux mail для автоматической отправки почты?

Почтовый ящик показывает имя отправителя как "Apache", потому что почта, которую я обрабатываю, отправляется из программы Perl CGI. Как изменить его на что-то еще?

4b9b3361

Ответ 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