2010-07-08 75 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个工作,就会发送一封电子邮件,那么您将能够发送电子邮件作为处理表单提交的脚本的一部分技术员每当他完成任务。