我有一个托管在外部网络托管服务上的网站,其中包括允许用户订阅活动并添加到注册列表。
我希望能够在活动开始前一天通过电子邮件提醒这些用户,提醒他们更新有关位置的信息等。
目前,我的托管服务不支持cron作业,我认为这会提供实现此目的的方法。
我有一个想法,当任何用户访问最接近我发送电子邮件时的首页时执行该功能,但这似乎是一个糟糕的选择,让我觉得必须有更好的方法。
我知道有些公司会在特定时间收费执行您的脚本,但我希望能够更灵活地在我的网站上直接配置它。
我想知道PHP中是否有任何API可以让我这样做,或者我的想法是实现目标的最佳方式,还是我错过了一些明显的东西......
任何帮助表示感谢。
答案 0 :(得分:0)
查看mcrypt_encrypt
和mcrypt_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
的md5。如果是,请运行脚本。
当然,您必须以某种方式远程调用您的远程服务器......但我认为您可以在主服务器上运行cron
,这样就不会出现问题。
答案 1 :(得分:0)
如果您使用的是MySQL数据库,那么MySQL Event management可能会为您提供解决方案;当然,这一切都取决于您的托管服务提供商是否允许您将MySQL配置为shell执行PHP脚本来进行邮件发送。