1

На моем веб-сайте настроены задания cron, и они работают довольно хорошо, но моя проблема в том, что выходные данные, отправляемые этими заданиями cron в виде электронной почты, доставляются с именем «from name» как Cron Daemon. Пожалуйста, есть ли способ, которым я мог бы изменить это на что-то более личное. Спасибо

Из комментария от ОП:

Командная строка, которая запускает мой файл:

php -q /home/username/public_html/x_y_z.php. 

Выходные данные файла (x_y_z_.php) затем отправляются по электронной почте заданием cron.

3 ответа3

0

Похоже, об этом много плохой информации, но есть два варианта, которые могут работать без сценариев-обёрток.

Во-первых, в некоторых системах вы можете установить MAILFROM же, как вы делаете MAILTO . man 5 crontab скажет вам, доступна ли MAILFROM .

В противном случае другой вариант - изменить файл имени mailname.

sudo vi /etc/mailname

Измени это.

0

"Настоящее имя" пользователя cron не может быть изменено, если у вас нет root-доступа, и вы не знаете, какой MTA используется для отправки этих писем (sendmail, exim, postfix?), И у каждого MTA есть свой собственный способ назначения реальных имен unix пользователи (cron, скорее всего, работает как пользователь "cron").

Лучше всего отправлять письма из вашего PHP-скрипта, а не полагаться на cron.

Быстрый способ сделать это с небольшими изменениями в вашем коде:

<?php

ob_start();

/* >>> your existing php code goes there */

$output = ob_get_contents();
ob_end_clean();

/* the text to be mailed is now in variable $output */

mail("reciptient@host.com", "Mail from cron job" , $output, "From: Webmaster <webmaster@example.com>\r\nReply-To: webmaster@example.com");

?>

Если функция mail почему-то не работает в вашей установке PHP, вам придется использовать сторонние библиотеки, такие как PEAR::Mail.

0

Мне пришлось изменить /etc/mail/sendmail.cf и /etc/mail/sendmail.mc , потому что /etc/mailname не использовался. Это только изменяет от домена, но не пользователя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .