2010-07-08 117 views
0

我想自動發送此郵件的過程。我的意思是當條件滿足時,電子郵件應該自動發送到給定的電子郵件地址,這些電子郵件地址已經作爲硬編碼值給出。因此,對於我的例子,技術人員必須每天完成40個職位,如果他在一天結束時完成35個職位,則應將電子郵件發送給主管(只要其電子郵件ID已提供)並且主體名稱應爲就像「技術人員1234當天只完成了35個工作,而不是40個。我想知道如何實現這一點,因爲我是PHP領域的新手。請任何人幫助我。如果可能的話,請給我一個例子。當滿足一定條件時PHP自動觸發郵件

感謝 迪利普

回答

0

你應該使用mail()功能:

$technicianId = 1234; 
$jobsNeeded = 40; 
$jobsDone = getJobsDone($technicianId); 
if ($jobsDone <= $jobsNeeded) { 
    mail('[email protected]', 'Technician '.$technicianId.' slacking', 'The Technician '.$technicianId.' has completed only '.$jobsDone.' jobs for the day instead of '.$jobsNeeded); 
} 
0

能有一個運行一個cronjob在每天結束時檢查每個技術人員完成的工作並將其發送給經理。

1

安裝程序運行在「一天結束」一Cron Job

23 55 * * * /path/to/php /path/to/script.php 

有它運行一個PHP腳本,可以查詢你的工作商店要檢查任何條件。例如,作業存儲是一個數據庫。

$db = new PDO(/* config */); 

$result = $pdo->query(
    'SELECT count(id) as "tasks_done" 
    FROM tasks WHERE engineer = "Tom" 
    AND finished_at = now()'); 

$result = $result->fetchAll(); 

if($result[0]['tasks_done'] < 40) { 
    mail(...) 
} 

如果滿足條件,發送mail。以上需要提煉當然。不要期望能夠複製/粘貼它。

另見:

2

你可以運行使用php mail function在設定的時間每天發送大約每個程序員報告cron。 cron腳本看起來像這樣:

<?php 
$to = '[email protected]';//the set up email to mail too 
$result = mysql_query('select programmer_id, job_count, job_requirement from table'); //query the database 
while($job = mysql_fetch_object($result)){ 
mail($to,'Job counts for ' . $job->programmer_id,"Completed $job->job_count out of $job->job_requirement jobs","FROM: [email protected]"); 
} 
1

我在這裏假設你的問題是觸發事件,而不是發送電子郵件本身。

在您描述的示例中,您需要在一天中的某個時間運行腳本,以檢查是否需要發送電子郵件的任何情況,然後發送電子郵件。在任何類Unix系統下,cron都是最理想的解決方案。如果你在某種基本的共享主機上,你可能無法設置它。在這種情況下,您需要設置一個任務,以在您控制的計算機上運行,​​該計算機將調用可運行PHP腳本的URL。這可能是一個cronjob,或Windows下的預定任務。

如果您的示例被切換,以至於一旦技術人員完成40個工作,就會發送一封電子郵件,那麼您將能夠發送電子郵件作爲處理表單提交的腳本的一部分技術員每當他完成任務。