Отправлять почту через cronjob / php, RHEL

Я пытаюсь отправить электронное письмо с помощью задания cron, используя скрипт php. Сам сценарий отлично работает при выполнении в оболочке. Когда он запускается cron, вложение отсутствует.

ОС - RHEL 7

Запись в Cron:

30 4 1 * * user /usr/bin/php /path/sendmail.php >/dev/null 2>&1

Пользователь в crontab такой же, как пользователь оболочки

Сценарий:

<?php 
require '/usr/share/php/PHPMailer/PHPMailerAutoload.php';
$msg = "";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->CharSet = 'UTF-8';
$mail->Host       = "mail.domain.com"; 
$mail->SMTPOptions = array(
  'ssl' => array(
  'verify_peer' => false,
  'verify_peer_name' => false,
  'allow_self_signed' => true
  )
);
$mail->SMTPDebug  = 0;                     
$mail->do_debug = SMTP::DEBUG_CONNECTION;
$mail->SMTPAuth   = true;                  
$mail->Port       = 25;                    
$mail->Username   = "SMTP-User"; 
$mail->Password   = 'SMTP-pass';        
$mail->setFrom('from@domain.com', '');
$mail->addAddress('receiver@domain.com', '');
$mail->Subject = 'Domains';
$mail->Body = 'Attachment : domain2.csv';
// Attach the uploaded file
$mail->addAttachment("domain2.csv", 'domain2.csv');
if (!$mail->send()) {
$msg .= "Mailer Error: " . $mail->ErrorInfo;
} else {
$msg .= "Message sent!";
}
?>

Не слишком сложно .

Может кто подскажет, как это исправить? Я думаю, что это снова одна из проблем с настройками SELinux.

TIA Wayne

0
задан 10 August 2018 в 09:36
1 ответ

Попробуйте использовать абсолютный путь, а не относительный, так как cron запускается из другого контекста

$mail->addAttachment(dirname(__FILE__)."/domain2.csv", 'domain2.csv');
0
ответ дан 24 November 2019 в 02:10

Теги

Похожие вопросы