发送带附件的数据不起作用 Cronjob
sending data with attachment doesn't work Cronjob
我不太了解 cron 作业,但我有一个 php 文件,当我 运行 使用浏览器发送数据时它工作正常并发送了附件,但如果我使用cron 作业到 运行 它,它永远不会与附件一起使用。
这是 cron 作业命令行:
/opt/php54/bin/php /home/username/public_html/path/to/myscript.php
这里是 php 文件中的错误位置,因为 cron 作业向我发送了带有 "Some how file :hhshd.jpg is not exist!" 的电子邮件,但是当我使用浏览器时,带有附件的数据已成功发送。
if (!file_exists("uploads/" . $fileName))
{
die("Some how file :$fileName is not exist!");
}
注意:我正在使用 Hostgator 的 cronjob。
一个可能的原因是当您通过浏览器 运行 脚本时,Apache 用户能够创建附件文件并发送它。
但是当 cronjob 由于权限问题无法创建附件时。
您可以尝试在您的 cronjob 中使用 'sudo' 或尝试更改您正在创建附件的目录的权限。
这很可能是所有权和权限问题。你必须在你的 cron 配置中放入什么取决于你把它放在哪里以及你的网络服务器 运行s 作为什么用户。如果您希望它在每天凌晨 5 点 运行,它位于 /etc/crontab
并且 www-data
是您的网络服务器用户,您需要这样的条目:
0 5 * * * www-data /opt/php54/bin/php /home/username/public_html/path/to/myscript.php
如果它在网络服务器用户自己的 crontab 文件中,它将跳过用户名字段。您可以使用 crontab -u www-data -e
对其进行编辑,并添加如下一行:
0 5 * * * /opt/php54/bin/php /home/username/public_html/path/to/myscript.php
另一个问题可能是当前工作目录可能不同,因此您可能需要设置命令以将 cd
包含到脚本所在的目录中,如下所示:
cd /home/username/public_html/path/to && /opt/php54/bin/php myscript.php
如果您想从 cron 作业接收任何错误输出,请在 运行 命令之前向 cron 文件添加这样的一行来设置 MAILTO
环境变量:
MAILTO=user@example.com
问题已解决我使用了这个 cron 作业命令:
curl http://yoursite/path/to/publish.php
示例:
* * * * * 卷曲 http://localhost/Android/SMS/p1.php
在上面的行中键入以每秒执行一次 p1.php 电子邮件发送带有附件的文件。
p1.php 文件在我的 htdocs/Android/SMS 文件夹中。
我不太了解 cron 作业,但我有一个 php 文件,当我 运行 使用浏览器发送数据时它工作正常并发送了附件,但如果我使用cron 作业到 运行 它,它永远不会与附件一起使用。 这是 cron 作业命令行:
/opt/php54/bin/php /home/username/public_html/path/to/myscript.php
这里是 php 文件中的错误位置,因为 cron 作业向我发送了带有 "Some how file :hhshd.jpg is not exist!" 的电子邮件,但是当我使用浏览器时,带有附件的数据已成功发送。
if (!file_exists("uploads/" . $fileName))
{
die("Some how file :$fileName is not exist!");
}
注意:我正在使用 Hostgator 的 cronjob。
一个可能的原因是当您通过浏览器 运行 脚本时,Apache 用户能够创建附件文件并发送它。
但是当 cronjob 由于权限问题无法创建附件时。
您可以尝试在您的 cronjob 中使用 'sudo' 或尝试更改您正在创建附件的目录的权限。
这很可能是所有权和权限问题。你必须在你的 cron 配置中放入什么取决于你把它放在哪里以及你的网络服务器 运行s 作为什么用户。如果您希望它在每天凌晨 5 点 运行,它位于 /etc/crontab
并且 www-data
是您的网络服务器用户,您需要这样的条目:
0 5 * * * www-data /opt/php54/bin/php /home/username/public_html/path/to/myscript.php
如果它在网络服务器用户自己的 crontab 文件中,它将跳过用户名字段。您可以使用 crontab -u www-data -e
对其进行编辑,并添加如下一行:
0 5 * * * /opt/php54/bin/php /home/username/public_html/path/to/myscript.php
另一个问题可能是当前工作目录可能不同,因此您可能需要设置命令以将 cd
包含到脚本所在的目录中,如下所示:
cd /home/username/public_html/path/to && /opt/php54/bin/php myscript.php
如果您想从 cron 作业接收任何错误输出,请在 运行 命令之前向 cron 文件添加这样的一行来设置 MAILTO
环境变量:
MAILTO=user@example.com
问题已解决我使用了这个 cron 作业命令:
curl http://yoursite/path/to/publish.php
示例:
* * * * * 卷曲 http://localhost/Android/SMS/p1.php
在上面的行中键入以每秒执行一次 p1.php 电子邮件发送带有附件的文件。 p1.php 文件在我的 htdocs/Android/SMS 文件夹中。