0

我有一个托管在外部网络托管服务上的网站,除其他外,它允许用户订阅事件并被添加到注册列表中。

我希望能够在事件发生前一天通过电子邮件提醒这些用户,提醒他们有关位置的更新信息等。

目前,我的托管服务不支持 cron 作业,我认为这可以提供实现此目的的方法。

我有一个想法,当任何用户访问最接近我发送电子邮件的时间的首页时执行该功能,但这似乎是一个糟糕的选择,让我认为必须有更好的方法。

我知道一些公司会在特定时间执行您的脚本并收取费用,但我希望能够更灵活地直接在我的网站上配置它。

我想知道 PHP 中是否有任何 API 可以让我这样做,或者我的想法是否是实现目标的最佳方式,或者我是否遗漏了一些明显的东西..

任何帮助表示赞赏。

4

2 回答 2

0

看看mcrypt_encryptmcrypt_decrypt功能。您可以使用参数作为输入PHP在外部页面上设置脚本。get该输入将用作身份验证,因此未经授权的人不会运行该脚本。使用上述函数对授权密钥进行加密和解密。这可以是你喜欢的任何东西,但我建议你随机创建一些东西,例如:

$authMessage = 'yourMessage' . date('Y-m-d', time());

并对其进行编码,然后通过get. 加密的消息每天都会发生变化,因此入侵会明显更加困难。

在远程服务器上,您从get. 使用您用于编码的相同密钥对其进行解码并检查一切是否正常(这意味着,如果字符串被正确解码并且日期是今天的日期)。如果一切正常,您可以启动脚本。

您也可以使用更简单的方法来做到这一点,例如涉及md5()

在您的主服务器上,使用get如下参数调用您的页面:

$get = md5('your secret phrase, the longer the better'.date('Y-m-d', time()));

在您的远程服务器上,当带有get参数的请求到来时,执行相同的操作,并检查您生成的 md5 是否等于来自get. 如果是,请运行脚本。

当然,您将不得不以某种方式远程调用您的远程服务器......但我假设您能够cron在您的主服务器上运行,所以这不会成为问题。

于 2013-05-04T11:40:50.620 回答
0

如果您使用的是 MySQL 数据库,那么MySQL 事件管理可能会为您提供解决方案;当然,这一切都取决于您的托管服务提供商是否允许您将 MySQL 配置为 shell 执行 PHP 脚本来发送邮件。

于 2013-05-04T12:03:27.310 回答