-1
我目前在使用PHP。我只是想出瞭如何使用PHP發送電子郵件(需要做一些後端的東西來運行它)。這個想法現在很簡單:Php在達到閾值後發送郵件,但只發送一次。每分鐘運行服務器端cronjob
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 = '[email protected]';
$from = '[email protected]';
$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 = '[email protected]';
$from = '[email protected]';
$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語句,我會立即收到一封電子郵件。我該怎麼辦?
將當前數字放在一個文件中,使用fopen(),fputs(),fclose()。然後,當腳本再次啓動時,將此值與當前值進行比較。 – lordgun
您需要以某種方式存儲以前的值,並且只有在以前的< 15 && new > 15',文件/數據庫是您的選項 –
時我纔會查看fopen(),fputs()和fclose()函數。感謝提示傢伙!〜 –