我需要稍后运行 mail.php 文件,而不是让用户在提交 register.php 时等待发送验证电子邮件。
所以我选择使用at命令在 1 分钟后在命令行中运行 mail.php(在 register.php 中调用):
但是我只能在 at 命令的交互模式下向该 php 文件发送参数。
at now + 1 minute
at> php mail.php {email} # {email} is the argument I want to pass
由于我希望这是自动的,所以我需要在运行 shell 脚本时使用:
at -f mail.sh
但我找不到传递{email}参数的正确方法,
我试图在 Shell 中设置一个环境变量,但也是徒劳的:
在register.php文件中,我写道:
shell_exec('export email=foo@bar.com');
shell_exec('at -f mail.sh now + 1 minute');
在mail.sh中,我写道:
#! /bin/bash
php mail.php $email