Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
233 views
Welcome To Ask or Share your Answers For Others

1 Answer

You can use this:

shell_exec('echo php mail.php test@test.com | at now + 1 minute');

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...