【发布时间】:2013-07-08 15:30:10
【问题描述】:
我正在尝试使用 CronJob 通过 Amazon SES 向我网站的用户发送简报/警报。
我正在使用以下php脚本通过SES完成交付
[http://sourceforge.net/projects/php-ses/?source=navbar][1]
include("ses.php");
$ses = new SimpleEmailService('id', 'key');
$m = new SimpleEmailServiceMessage();
$body="Test"
$m->addTo($mailId);
$m->setFrom('from@mail.com');
$m->addReplyTo('from@mail.com');
$m->setSubject('Reminder from Site.com');
$m->setSubjectCharset('ISO-8859-1');
$m->setMessageCharset('ISO-8859-1');
$m->setMessageFromString('text body',$body);
$ses->sendEmail($m);
但是当我通过浏览器访问这个文件 (mailsend.php) 时,我收到的电子邮件非常好。但是当使用由 CronJob 触发的这个函数时,我得到了以下错误:
[2013 年 7 月 8 日 11:10:11 America/New_York] PHP 警告:
SimpleEmailService::sendEmail(): 77 错误设置证书验证位置:
CAfile:/etc/pki/tls/certs/ca-bundle.crt
CApath:无
在 /home/site/public_html/files/login/ses.php 第 356 行
关于问题可能出在哪里的想法?
【问题讨论】:
-
cron 作为命令行 PHP 运行,它具有不同的 .ini 文件和通常不同的设置。比较
php -i(命令行)`和phpinfo()(浏览器)的输出并找出哪些设置不同。 -
但我只有 cPanel 访问服务器。我们可以检查 cPanel 访问权限吗?
-
正如 Marc B 所指出的,cron 作业(包括使用的 PHP 版本)的整体 环境 可能与在 Web 服务器上运行并通过浏览器。在 cron/命令行下运行时似乎存在某种身份验证(“CA”)问题。您可能需要与您的房东讨论这个问题。
标签: php email amazon-web-services cron amazon-ses