通过php脚本定期发送电子邮件

时间:2014-04-30 18:30:40

标签: php mysql email automation periodic-task

我正在研究自动监控系统。我已经制作了一个拥有MySQL数据库的.NET应用程序。为此,我开发了一个普通的ADMIN面板,管理员可以登录并获取来自在数据库上触发的各种查询的必要报告。还有一个"摘要报告"在小组中,这只是粗略的每周摘要。现在我想要的是,我希望这份报告(全文)自动发送到一些电子邮件" xxxxx@xxx.com"七天的时间。我之前使用过一些PHP脚本来点击提交按钮发送电子邮件。如下所示。

<?php
if(isset($_POST['isPost']))
{
$header="From:".$_POST['customer_mail']."\r\nName:".$_POST['name']."\r\nCity:".$_PO        ST['city'];
$subject = $_POST['title'];
$message="From:$_POST[customer_mail]\r\nName:$_POST[name]\r\nPhone:$_POST[city]\r\n        \r\n\r\n\r\n".$_POST['details'];
$to = 'xxxxxxxxx@xxx.com';

$send_contact=mail($to,$subject,$message,$header);

if($send_contact)
{
echo "<h6 style='text-align:center;color:green'>Sent Successfully</h6>";
}
else
{
echo "<h6 style='color:red'>Error sending e-mail'</h6>";
}
}
?>

这是正常的邮件发送脚本,工作正常。但出于上述目的,我想,任何人都可以帮助我定期自动设置此操作,或指出我如何做到这一点的正确方向。我已经google了这样的PHP脚本,但没有满意的结果。 〜问候

4 个答案:

答案 0 :(得分:4)

你可以用cronjobs做到这一点。 一个长时间运行的进程,它以给定的时间/日期/间隔执行命令。

根据您的系统,有不同的方法。

如果您在网络服务器上有脚本,则某人正在为您/ Webhost服务运行

请系统管理员使用cronjob运行脚本。如果您可以在任何管理面板中自行设置,请搜索任何帮助文档。请咨询您的webhoster /系统管理员以获取更多信息。

如果您的本地计算机上有脚本:

<强> UNIX

尝试阅读有关如何运行php脚本的crontab或任何脚本。

例如,键入crontab -e并在crontab中添加以下行,cronjob将每小时运行一次脚本:

00 * * * * /usr/local/bin/php /home/Low-pointer/myscript.php

Here is some more information if you want to play with the intervals

Windows

如果您使用Windows,则可以使用scheduled tasks运行php命令。

例如,将以下命令添加到调度程序:C:\wamp\bin\php\php.exe -f C:\wamp\www\my_script.php

您还可以使用网络cron服务(Google it)这些是在指定时间运行网页(例如在您的网络服务器上)的在线服务。免费或付费。

答案 1 :(得分:2)

您可以使用Cpanel通过cronjob发送日程安排电子邮件(如果您正在使用它)。 一旦你打开cpanel,那就是crontab系统。 将当前代码添加到文件(xx.php)并将此命令添加到cpanel中的crontab,

/usr/bin/php -q /home/public_html/xx.php

答案 2 :(得分:1)

像所有人都已经说过你必须使用cronjob来完成你的任务。 我假设你使用Linux操作系统作为生产环境。 所以你需要:

1)一个php端点(例如www.mywebsite.com/emailsend.php)或一个CLI php脚本,在调用时发送电子邮件。

2)正确的crontab规则

下面是一个简单的shell脚本(mailsend.sh)的示例,该脚本使用CURL调用端点并保存带有Web服务器给出的最终响应的html文件

#!/bin/bash

curl http://www.mywebsite.com/emailsend.php -o /path/to/my/mailsendreport/"$(date '+%Y-%m-%d-%H-%M-%S')".html

将计划任务添加到cron

crontab -e

然后添加如下的规则

50 23 * * 6 sh /path/to/mailsend.sh  

什么&#34; 50 23 * * 6&#34;手段?这意味着每周的第六天,在第23小时,在第50分钟,您的sh脚本将被调用,然后您的网络应用程序和电子邮件将被发送。

我写了一篇关于此的小文档后,您可以看到它here

干杯

答案 3 :(得分:0)

你正在寻找&#34; cron job&#34;。

编辑:或者因为它听起来像是在Windows上,&#34;计划任务&#34;