私は現在、担当者のパスが 3 か月後に期限切れになるときに管理者に電子メールを送信するスクリプトを作成しています。ただし、電子メールは1つの電子メールのみを送信し、各担当者に意図した複数の単一の電子メールを送信しないため、現在ボトルネックになっています。また、今日 + 3 か月のものも送信する必要があります (つまり、2013 年 6 月 2 日の有効期限は今日、1 回だけ送信されます)。値は DATE (yyyy-mm-dd) として db に格納されます。
一度実行するには、sendemail(担当者のデータベーステーブルのフィールド)= 0のSQLでチェッカーが必要ですか?
現在のデータ ストアは配列内にありますか? もしそうなら、条件を満たす各エントリに電子メールを送信するために foreach() が必要ですか?
私のデータベースには1000近くのエントリがあり、上記のコードまたは修正されたコードがサーバーを詰まらせないことを願っています。これにより、営業時間後にスクリプトが実行されます。
専門家がスクリプトを完成させるのを手伝ったり、正しい方向性を教えてくれませんか? どんな助けも大きな助けです!!!
ありがとう
(PS.-最初に電子メールが機能するための正しい方向を私に指摘してくれたpetermの功績と、mysql_ *が非推奨である場合はご容赦ください。現時点で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);