3

我正在开发一个自动监控系统。我制作了一个具有 MySQL 数据库的 .NET 应用程序。为此,我开发了一个普通的管理员面板,管理员可以在其中登录并从数据库上触发的各种查询中获取必要的报告。面板中还有一个“总结报告”,它只是粗略的每周总结。现在我想要的是,我希望这份报告(所有文本)在 7 天内自动发送到某个电子邮件“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>";
}
}
?>

这是正常的邮件发送脚本,可以正常工作。但是出于我想要的上述目的,任何人都可以帮助我定期自动设置此操作,或者为我指出如何执行此操作的正确方向。我已经搜索过这样的 php 脚本,但没有满意的结果。〜问候

4

4 回答 4

4

您可以使用 cronjobs 执行此操作。在给定时间/日期/间隔执行命令的长时间运行的进程。

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

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

请系统管理员使用 cronjob 运行脚本。或者,如果您可以在任何管理面板中自行设置,请搜索任何帮助文档。请向您的网络托管服务商/系统管理员咨询更多信息。

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

UNIX

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

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

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

如果您想玩间隔,这里有一些更多信息

视窗

如果您使用 Windows,则可以使用计划任务来运行 php 命令。

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

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

于 2014-04-30T18:37:01.863 回答
3

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

/usr/bin/php -q /home/public_html/xx.php
于 2014-04-30T18:39:57.540 回答
1

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

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

2)正确的crontab规则

下面是一个简单的 shell 脚本 ( mailsend.sh ) 的示例,它使用 CURL 调用端点并保存一个 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  

“50 23 * * 6”是什么意思?这意味着每周的第六天,在第 23 小时,在第 50 分钟,将调用您的 sh 脚本,然后发送您的 Web 应用程序和电子邮件。

一旦我写了一个关于这个的小文档,你可以在这里看到它

干杯

于 2014-04-30T18:54:22.753 回答
0

您正在寻找“cron 工作”。

编辑:或者因为听起来你可能在 Windows 上,“计划任务”

于 2014-04-30T18:31:56.970 回答