当满足特定条件时,PHP会自动触发电子邮件

时间:2010-07-08 16:26:41

标签: php

我想自动发送此电子邮件的过程。我的意思是当条件满足时,电子邮件应自动发送到给定的电子邮件地址,该电子邮件地址已作为硬编码值给出。因此,在我的案例中,技术人员必须每天完成40次操作,如果他在一天结束时完成35次,则应向主管发送电子邮件(如果已经提供了他的电子邮件ID),主题名称和正文应该就像“技术人员1234当天只完成了35个工作而不是40个工作。我想知道如何实现这一点,因为我是PHP领域的新手。请有人帮帮我。如果可能的话请给我一个例子。

由于 迪利普

6 个答案:

答案 0 :(得分:2)

您可以运行cron,使用php mail function在每天的设定时间发送有关每位程序员的报告。 cron脚本看起来像:

<?php
$to = 'admin@mydomain.com';//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: jobcounter@mydomain.com");
}

答案 1 :(得分:1)

让脚本检查条件并发送电子邮件,并定期运行:http://www.google.com/search?q=cronjob

答案 2 :(得分:1)

设置在“当天结束时”运行的Cron Job

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

让它运行一个PHP脚本,可以查询您的Job Store以查找您要检查的任何条件。例如,Job Store是一个数据库。

$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。以上需要精炼。不要期望能够复制/粘贴它。

另见:

答案 3 :(得分:1)

我在这里假设您的问题是触发事件,而不是发送电子邮件本身。

在您描述的示例中,您需要在一天中的特定时间运行脚本,以检查是否需要发送电子邮件的条件,然后发送电子邮件。在任何类似unix的系统下,cron都是理想的解决方案。如果您使用某种基本共享主机,则可能无法进行此设置。在这种情况下,您需要设置一个任务,以便在您可以控制的计算机上运行,​​该计算机将调用运行PHP脚本的URL。这可能是cronjob,也可能是Windows下的预定任务。

如果你的例子被转换,那么,一旦技术人员完成了40个工作就会发送一封电子邮件,那么你就可以发送电子邮件作为处理技术人员提交表单的脚本的一部分每当他完成任务时。

答案 4 :(得分:0)

你应该使用mail()功能:

$technicianId = 1234;
$jobsNeeded = 40;
$jobsDone = getJobsDone($technicianId);
if ($jobsDone <= $jobsNeeded) {
    mail('supervisor@yourcompany.com', 'Technician '.$technicianId.' slacking', 'The Technician '.$technicianId.' has completed only '.$jobsDone.' jobs for the day instead of '.$jobsNeeded);
}

答案 5 :(得分:0)

可以在每天结束时运行一个cronjob,检查每个技术人员的工作并将其发送给经理。