Estoy usando CRON Job para enviar una alerta por correo electrónico al usuario cuando se acerca la fecha de vencimiento del envío. Pero cuando quiero probarlo enviando primero un correo electrónico simple, sigue apareciendo (CRON) info (No MTA installed, discarding output)
en el archivo syslog
. Pero cuando ejecuto el script PHP usando la URL, puede enviarme el correo electrónico.
Entonces mi pregunta es: ¿necesito instalar un MTA en mi servidor web cuando ejecuto CRON Job para enviar correo electrónico con PHPMailer?
Este es mi crontab
código:
* * * * * /var/www/html/test.php (cmd1; cmd2) 2>&1 | logger -t mycmd
Y este es mi test.php
código:
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require '/usr/share/php/libphp-phpmailer/src/Exception.php';
require '/usr/share/php/libphp-phpmailer/src/PHPMailer.php';
require '/usr/share/php/libphp-phpmailer/src/SMTP.php';
require '/usr/share/php/libphp-phpmailer/autoload.php';
// Set the script time zone to UTC
date_default_timezone_set('Etc/UTC');
function sendMail($email, $message, $subject) {
$mail = new PHPMailer();
// set up for the SMTP and used account
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';
$mail->Port = 587;
// Disable some SSL check
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
// sender, recipient, reply-to etc
$mail->SetFrom('[email protected]', 'Reply-to');
$mail->addAddress("$email");
$mail->IsHTML(true);
// email contains
$mail->Subject = "$subject";
$mail->Body = $message;
// send email
$mail->send();
}
sendMail("[email protected]", "Hello World!", "Test");
?>