Я использую удаленный SMTP через nullmailer, и для него требуется установить поле From на определенное имя, но cron установил его как root@my.sweet.server.com.
Как я мог изменить его на что-то вроде me@ya.ru?
Я использую удаленный SMTP через nullmailer, и для него требуется установить поле From на определенное имя, но cron установил его как root@my.sweet.server.com.
Как я мог изменить его на что-то вроде me@ya.ru?
Ответы:
Я не думаю, что вы можете изменить адрес FROM (кто-то должен добавить опцию MAILFROM).
Вы можете сделать что-то вроде этого, хотя для достижения аналогичного результата:
* * * * * /path/to/script 2>&1 | mail -s "Output of /path/to/script" toaddress@example.com -- -r "fromaddress@example.com" -F"Full Name of sender"
Весь вывод передается в команду mail, поэтому переменная MAILTO вообще не используется.
Адрес to должен быть установлен, но вы можете использовать переменную $ MAILTO. Параметр - устанавливает остальные параметры как параметры sendmail, поэтому вы можете использовать параметры -r и -F.
-s это тема
-r является адресом ответа
-F - полное имя отправителя (делает его красивым в почтовых клиентах)
Современные версии cron принимают «MAILFROM = ...» в формате crontab. Я предлагаю вам попробовать "man 5 crontab". Если в нем упоминается MAILFROM, ваша версия должна его поддерживать. Фраза, которую нужно искать, находится в конце абзаца, где обсуждается MAILTO, и должна выглядеть примерно так:
If MAILFROM is defined (and non-empty), it will be used as the envelope sender address, otherwise, ''root'' will be used.
MAILFROM
в man 5 crontab
.
cronie
заменить cron
на Debian / Ubuntu. Та-даа: MAILFROM
существует:
/ etc / mailname содержит часть имени домена адреса FROM. Если / etc / mailname содержит «somecompany.com», то для cron, работающего от имени root, будет отправитель root@somecompany.com.
Вы можете установить nullmailer по адресу через переменные окружения или командную строку. Аргументы командной строки -f
и -F
для адреса отправителя и для полного имени соответственно.
Обычно вы можете установить переменные окружения в crontab.
NULLMAILER_USER=webmaster
NULLMAILER_HOST=host.example.com
NULLMAILER_NAME="Mr Cron"
5 0 * * * /usr/local/bin/daily.sh
Для меня самый простой способ изменить адрес from в системе - это создать ~/.mailrc
файл с таким содержимым:
set name="My Full Name"
set from="myrealemail@example.com"
Любая из mail
команд, которые запускаются от моего пользователя, теперь используют эти настройки.
Смотрите этот вопрос, если используете exim:
exim: переписать заголовок "From" в конверт "FROM"
Он должен установить адрес «От» для владельца cronjob. Вы можете заменить $header_from:
свой собственный адрес, если хотите жестко закодировать его как-нибудь еще.
Другой простой альтернативой является использование Mutt,
создайте .muttrc в домашнем каталоге пользователя, который запускает cron со следующим
set realname = "Joe User" set from = "user @ host" set use_from = yes
Запустите сценарий с командой Mutt или передайте команду cron, из которой Mutt отправляет электронную почту.
Прежде чем Mutt отправит и отправит электронное письмо, он установит заголовок From из файла .muttrc.
он отправляется по почте из домена user @ - user - это имя пользователя, под которым запускается cron, - поэтому вам нужно создать пользователя «me» - и запустить задание cron от имени этого пользователя.
Затем, чтобы изменить домен, есть разные возможности - может быть, вам нужно изменить запись в файле hosts (или, как на моем компьютере, когда я настраивал это - окно ubuntu) - изменить / etc / mailname - быть доменом, из которого вы хотите, чтобы он пришел.