繁体   English   中英

Cron正在运行,但未发送电子邮件

[英]Crons are running but email not sent out

我正在运行PHP / MySQL服务器,并使用cron作业来定期更新我的客户以及发送自动新闻通讯,发票等。但是,由于电子邮件未发送,它似乎不起作用。

  1. cron作业正在运行(已检查日志)。
  2. 通过浏览器调用脚本会导致发送电子邮件。
  3. 使用SSMTP进行电子邮件传输。
  4. SPF和DKIM记录到位且正确。

我无法弄清楚出了什么问题。 这是电子邮件脚本的伪代码:

$override_authentication = true;
require_once('../services/shared/connect.php');

$query = "SELECT * FROM `organizations`";
$orgs = mysqli_query($database,$query);
while ($org = mysqli_fetch_array($orgs)) {

  // GENERATE EMAIL CONTENT HERE

  // Send email to all users
  $query = "SELECT `id`, `email`, `avatar`, `gender`, `phone`, `option_textalerts` FROM `users` WHERE `organization` = " . $org['id'] . " AND `option_scheduling` = 'enabled'";
  $users = mysqli_query($database, $query);
  while($user = mysqli_fetch_array($users)) {
    $message = emailGetHeader("Submit Availability for ".date('F Y', mktime(0,0,0,date('n')+1,1,date('Y'))), $user) . $body . emailGetFooter();
    $to = $user['email'];
    mail($to,"Submit Availability for ".date('F Y', mktime(0,0,0,date('n')+1,1,date('Y'))),$message,emailGetMeta('Leadsheet <email@leadsheet.us>', 'Leadsheet Automailer <no-reply@leadsheet.us>'));

    // If enabled, sent a text alert to the phone number on their account
    if ($user['option_textalerts'] == 'availability') {
      $phone = preg_replace("/[^0-9]/", "", $user['phone']);
      $domains = array('txt.att.net', 'myboostmobile.com', 'sms.mycricket.com', 'tmomail.net', 'vtext.com');
      foreach ($domains as $domain) {
        mail($phone.'@'.$domain, "Availability Reminder",'Please submit your availability for '.date('F Y', mktime(0,0,0,date('n')+1,1,date('Y'))).' on Leadsheet', emailGetMeta('Leadsheet <txt@leadsheet.us>', 'Leadsheet Automailer <no-reply@leadsheet.us>'));
      }
    }
  }
}

mysqli_close($database);

看来您缺少环境变量。 查看phpinfo()并与您的本地环境进行比较。 另外,您可以只使用wget模拟浏览器加载页面。

向朋友咨询后,我找到了答案。 cron引擎正在从根目录执行脚本,因此require_once的相对文件名无法解析。 在执行脚本之前添加cd命令可以解决此问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM