У меня есть bash-скрипт, который отправляет письмо через mutt командной строки. Этот сценарий bash вызывается из задания cron (настройка выполняется с помощью crontab -e из-за разрешений, необходимых для выполнения всех элементов в сценарии). Я установил адрес from, чтобы пользователи могли отвечать (что работает нормально), но отображаемое имя - «root». Это вызывает некоторую путаницу. Есть ли реальный способ установить имя, связанное с адресом электронной почты?
Ниже приведена часть сценария для электронной почты:
EMAIL=me@domain.com
export EMAIL
mutt -s "subject" -a /home/user/directory/file*.xls -- user1@domain.com, user2@domain.com < /home/user/directory/message.txt
Спасибо
Кевин
Самый легкий способ удостовериться электронная почта, которая отправляет с корректным именем, должна была бы выполнить задание крона на учетной записи, которую Вам нужен он для отсылки:
me@domain:~$ crontab -e
Если Вы хотите, чтобы пользователь root отослал сообщения через дурака, попробуйте этот лайнер (он работал на меня):
export EMAIL="Me <me@domain.com>" && mutt -s "subject" -a /home/user/directory/file*.xls -- user1@domain.com, user2@domain.com < /home/user/directory/message.txt
Надеюсь, это поможет.
Используйте /etc/crontab
вместо cron
, поскольку вы можете использовать это для включения имени пользователя, которое используется для запуска команды, которую вам нужно запустить.
Пример:
more /etc/crontab
показывает
# /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repor t /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --repor t /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --repor t /etc/cron.monthly ) #
Включите вашу строку из cron в этот файл и добавьте имя пользователя между dow (день недели) и командой. Сценарий будет запущен от имени этого пользователя.
Это немного лучше, чем делать это в пользовательском crontab, так как вы можете включить одну и ту же строку здесь для каждого пользователя, который вам нужен, и вам не нужно поддерживать несколько crontabs.
Если вам нужен root для доступа к определенным файлам, вы должны изменить разрешения для него или создать группу, которая включает эту команду и ваших пользователей.