我基本上有一个正常的 php 邮件功能脚本,它应该使用 cron 作业经常运行,但是如果我手动运行脚本,有些电子邮件在它们实际工作时不起作用。
例如,在我的 hoshing cron 控制面板中,我输入了 domain.ca/pear/Mail/test_mail.php
我输入的网址不正确吗?我应该使用某种 cron 作业命令吗
require_once('Mail.php');
require_once('../Mail_Mime/mime.php');
$mail = Mail::factory("mail");
$headers = array("From"=>"me@example.com", "Subject"=>"Test Mail");
$body = "This is a test!";
$mail->send("example@gmail.com", $headers, $body);
这正是我的电子邮件脚本
此外,cron 还适用于某些电子邮件地址,例如 gmail。
所以像我的学校这样的电子邮件在 cron 中不起作用,但在手动执行时起作用。该脚本还使用 cron 更新数据库。
我的 .sh 文件中有这个:
/usr/local/nf/php5/bin/php -f ./test_mail.php
最佳答案
您不能将 URL 单独放在 cron 规则中。使用基于文本的浏览器,例如 lynx
或 wget
在 cron 规则中:
* * * * * wget <a href="http://mypage.com" rel="noreferrer noopener nofollow">http://mypage.com</a>
您可能希望为 wget
添加一些参数或 lynx
这样它就不会在服务器上保存输出,而只是模拟获取。或将输出文件夹重定向到 /tmp
或 /dev/null
让它被浪费。查看相关工具的手册页:
man wget
或者 wget --help
通过 Shell。
您还可以按照 Artefact2 的建议进行操作:* * * * * php script.php
.您可能需要在 PHP 代码的顶部添加 PHP 的 shebang 声明:
#!/usr/bin/php
<?php
// your PHP code here
Shebang 需要指向您系统中正在运行的 PHP 可执行文件。
关于php - 使用 cron 作业发送电子邮件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5146800/