我目前正在编写一个脚本,当受让人的通行证在 3 个月后到期时,它会向管理员发送电子邮件。但是,我现在处于瓶颈状态,因为电子邮件仅发送一封电子邮件,而不是每个受让人的预期多封电子邮件。它还应该发送今天 + 3 个月的那些(即 2013-06-02 到期的将在今天发送,并且只发送一次)。值在 db 中存储为 DATE (yyyy-mm-dd)。
我想它运行一次我应该有一个检查器与我的 sql where sendemail(db table for assignee) = 0?
我当前的数据存储在数组中吗?如果是这样,我需要 foreach() 将电子邮件发送到满足条件的每个条目?
我的数据库中有近 1000 个条目,希望上面的代码或修改后的代码不会阻塞服务器,它会在办公时间之后运行脚本。
任何专家都可以协助完善脚本或指出正确的方向吗?任何帮助都是很大的帮助!!!
谢谢
(PS.-credit to peterm in pointing me the correct direction for the email to work in the first place & Pardon me if mysql_* is deprecated.我现在不知道如何使用pdo。一旦一切正常,我可能会再次编辑它们以采用 pdo 以供将来校对)
这就是我现在所拥有的:
/execute the SQL query and return records
$result = mysql_query("SELECT * FROM tbl_lead WHERE pass_expiry = DATE(NOW() + INTERVAL
3 MONTH)");
if (!$result) {
//handle your error
die('The query failed.');
}
//fetch tha data from the database
while ($row = mysql_fetch_array($result))
{
$subject = $row['company_name']."'s"." work pass is expiry soon";
$emailBody = "Company: ".$row['company_name']." \n"."Comment: ".$row['comment']."
\n"."Contact: ".$row['contact']." \n";
}
if(mail($to, $subject, $emailBody, $headers)) {
echo $emailBody;
echo 'Email sent successfully!';
} else {
echo $emailBody;
die('Failure: Email was not sent!');
}
//close the connection
mysql_close($dbhandle);