I understand that to add a cronjob I use crontab -e I want to send emails to customers once a day, I have the page set-up & if I open the page in a web browser it works. the path is /home/www/web(number)/web/auto/mail.php I added this to the crontab 00 01 * * * /home/www/web(number)/web/auto/mail.php &> /dev/null I think this will run at 1am every day - but it doesn't work. Can you tell me where I'm going wrong please. I have set CHMOD to 777 for the file mail.php Thanks
When running a PHP script from cron, you must run it through the php binary. When you view a PHP script in your web browser, the web server hosting the PHP file does that for you automagically. So to run your cron job, do something like this: Code: 00 01 * * * /path/to/php /home/www/web(number)/web/auto/mail.php Hope that helps!
you can also run a php file in lynx: /usr/bin/lynx [-auth user : pass] -dump -source http://domain.com/somescript.php 2>&1 > /dev/null the bit in []'s is optional and depends if your script is behind some sort of authentication
You will definitely want to add some kind of access control to that mail script. Use a .htaccess file in the directory to block out unauthorized users. That won't affect scripts run from a cron job or shell. Good luck.
If you wanted to use a cron job to hit a page via the web server, I wouldn't use lynx - lynx is great for interactive use but for this sort of thing I'd go with curl or wget. Just my 2 cents.