I need to run a mail.php file later instead of keeping the user to wait for the validation email to be sent when they submit for register.php.
So I chose to use the at command to run mail.php ( invoked in register.php ) in command line 1 minute later:
But I can only send parameters to that php file when I was on the interactive mode of the at command.
at now + 1 minute
at> php mail.php {email} # {email} is the argument I want to pass
Since I want this be automatic, so I need to use at run a shell script:
at -f mail.sh
But I could't find a proper way to pass the {email} argument,
I tried to set an environment varaible in Shell but also in vain:
In the register.php file, I wrote:
shell_exec('export email=foo@bar.com');
shell_exec('at -f mail.sh now + 1 minute');
In the mail.sh, I wrote:
#! /bin/bash
php mail.php $email
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…