【发布时间】:2017-01-12 10:22:23
【问题描述】:
我是 PHP 新手,我确实创建了一个 cron 作业,每天在 cPanel 中发送两次邮件:
Minute Hour Day Month Weekday Command
0 0,12 * * * /home/user/public_html/cronjob/send-mail.php
发送邮件.php
<?php
$to = "john@domain.com";
$sender = "sender@domain.com";
$subject = "TEST CRONJOB";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=ISO-8859-1\r\n";
$headers .= "Bcc: ".strip_tags($sender)."\r\n";
$headers .= "From: Domain.com <".strip_tags($sender).">\r\n";
$html = "<html>
<body style='font-family:arial;'>
<p>Have a good day!<br>Test email sent twice per day.</p>
</body>
</html>";
mail($to, $subject, $html, $headers);
?>
经过几次测试,我收到以下错误:
/home/user/public_html/cronjob/send-mail.php: line 1: ?php: No such file or directory
/home/user/public_html/cronjob/send-mail.php: line 3: =: command not found
/home/user/public_html/cronjob/send-mail.php: line 4: =: command not found
/home/user/public_html/cronjob/send-mail.php: line 5: =: command not found
/home/user/public_html/cronjob/send-mail.php: line 6: =: command not found
/home/user/public_html/cronjob/send-mail.php: line 7: .=: command not found
/home/user/public_html/cronjob/send-mail.php: line 8: syntax error near unexpected token `('
/home/user/public_html/cronjob/send-mail.php: line 8: `$headers .= "Bcc: ".strip_tags($sender)."\r\n";'
我可以通过简单地运行脚本来发送电子邮件,但不能在 cron 中。
【问题讨论】:
-
错误不是来自您的脚本。例如,您的脚本中没有
strip_tags()。此外,最好使用邮件库来发送邮件,例如 PHPMailer 或 SwiftMailer -
@Raptor 嗯..什么是确切的错误?
-
我看到你修改了代码。 cron 作业应该使用 PHP 来运行 php 文件,而不是运行 PHP 文件本身。例如
/usr/bin/php /path/to/your/script.php -
使用PHP运行php文件?你能详细说明一下吗?