在Hostinger服务器配置Laravel Cron Jobs发送自动邮件遇问题
Hostinger Cron Jobs 自动邮件发送问题排查步骤
修正项目路径错误:Laravel的
artisan文件在项目根目录,而非public子目录。你当前脚本里cd到public目录执行php artisan会找不到文件,把脚本路径改成项目根目录:#!/bin/sh cd /home/u765133174/public_html/eurotracks && php artisan schedule:run >> /dev/null 2>&1给脚本添加执行权限:SSH登录服务器,执行以下命令赋予脚本可执行权限:
chmod +x /home/u765133174/domains/eurofinsmy.net/public_html/eurotracks/public/script.sh开启日志排查错误:暂时取消输出重定向到
/dev/null,改成输出到日志文件,方便查看具体错误:#!/bin/sh cd /home/u765133174/public_html/eurotracks && php artisan schedule:run >> /home/u765133174/public_html/eurotracks/storage/logs/cron.log 2>&1之后查看
cron.log文件,就能明确是找不到PHP、artisan,还是SMTP连接失败等具体问题。使用PHP完整路径:Hostinger的全局
php命令可能和项目使用的PHP版本不匹配,先在SSH里执行which php获取正确的PHP路径(比如/usr/local/bin/php或/usr/bin/php8.2),然后替换脚本里的php为完整路径:#!/bin/sh cd /home/u765133174/public_html/eurotracks && /usr/local/bin/php artisan schedule:run >> /home/u765133174/public_html/eurotracks/storage/logs/cron.log 2>&1手动测试脚本:直接在SSH里运行脚本,查看实时报错:
sh /home/u765133174/domains/eurofinsmy.net/public_html/eurotracks/public/script.sh如果运行时提示找不到artisan、PHP版本不对,或者SMTP连接超时,就能直接定位问题。
检查服务器SMTP限制:本地能发送但服务器不行,可能是Hostinger防火墙阻止了SMTP端口(25/465/587),或者你的SMTP服务商限制了服务器IP发送,需要确认服务器IP未被列入邮件黑名单,或者改用Hostinger提供的内置SMTP服务。
内容的提问来源于stack exchange,提问作者ggcode
相关产品推荐
相关产品推荐

