我目前正在使用PHP。我只是弄清楚如何使用PHP发送电子邮件(需要做一些后端的东西才能让它运行)。这个想法现在很简单:
1)每分钟,一个cronjob被安排执行“x.php”。这个php脚本从外部服务器获取数据。 2)如果数据的值低于15,我需要脚本向我发送电子邮件。 3)但是,如果此值暂时低于15,我不希望每分钟发送垃圾邮件,因此它应该只向我发送一次通知,然后每次超过15,然后再次低于15。
我的代码如下。我意识到这不起作用,因为$ sentMail = 1;每次运行脚本时都会执行。但我怎么能这样做?$ sentMail = 1;
if ($nettoValue < 15) {
if ($sentMail == 1) {
$subject = 'Dit is de titel van het test bericht';
$email = 'Dit is de inhoud van het test bericht';
$to = 'pbla@bla.com';
$from = 'bla@bla.com';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: bla <{$from}>";
$headers[] = "Reply-To: bla <{$from}>";
//$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();
mail($to, $subject, $email, implode("\r\n", $headers), "- f".$from );
$sentMail = 0;
}
else {}
}
if ($nettoValue > 15) {
$sentMail = 1;
}
提前感谢您的帮助:)
编辑:显然我仍然做错了,因为一旦脚本出现在页面中,我就会收到服务器错误:if ($nettoValue < 15) {
$fname = "/httpdocs/sentmail.txt";
$fhandle = fopen($fname,"r");
$sentMail = fread($fhandle,"1");
fclose($fhandle);
if (strcmp($sentMail,'1')==0) {
$subject = 'Test';
$email = 'Test';
$to = 'bla@gmail.com';
$from = 'bla@gmail.com';
$headers = array();
$headers[] = "MIME-Version: 1.0";
$headers[] = "Content-type: text/plain; charset=iso-8859-1";
$headers[] = "From: BECC <{$from}>";
$headers[] = "Reply-To: BECC <{$from}>";
//$headers[] = "Subject: {$subject}";
$headers[] = "X-Mailer: PHP/".phpversion();
mail($to, $subject, $email, implode("\r\n", $headers), "-f".$from );
$fname = "/httpdocs/sentmail.txt";
$fhandle = fopen($fname,"w");
fwrite($fhandle,"0");
fclose($fhandle);
}
else {}
}
if ($nettoValue > 15) {
$fname = "/httpdocs/sentmail.txt";
$fhandle = fopen($fname,"w");
fwrite($fhandle,"1");
fclose($fhandle);
}
我注意到的一些事情:文件没有被写入,所以可能也没有读过。如果我删除sentMail == 1的if语句,我会立即收到一封电子邮件。我该怎么办?
答案 0 :(得分:0)
弄清楚了。代码很好,但是不允许使用crontabs自动编辑其他文件。如果我手动运行脚本,它会发送电子邮件。