Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to send emails via cron job usng PHP mysql

i managed to send multiple emails (check here).i am stuck with sending automated emails via cron.

This is what i need - while the admin send emails, i store the message, emails, event date in the database. now i am trying to set a cron job to send emails to all these ids from the table with the message i have as a reminder. i am not familiar with cron job scripting, can anyone help in guiding me the right way to write script that i can place in cron tab. I am planning to send two mails - one day exactly before the event and on the day of event.thanks

like image 720
JDesigns Avatar asked Jul 30 '10 02:07

JDesigns


People also ask

How to send auto mail in php?

The first method to send emails directly from a PHP script is by using the built-in mail() function. To use the PHP send mail feature, users hosting their PHP application or site on a local server will need to configure a Sendmail program by changing the php. ini file in their PHP installation folder.

Does Cron send email?

Cron and MAILTO If you run the script from cron, you can look into using cron's MAILTO= option. You put a [email protected] line in your crontab, and, when a job fails, cron will send a notification to the specified address using system's MTA.

What is cron job email?

Cron Jobs are used to schedule tasks on the server to run. They're most typically used to automate system management or maintenance.


2 Answers

Just write a normal PHP script -- make one that will work if it's launched directly from the browser. Then schedule that very same PHP file to run in cron, using this as a guide:

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

Basically, using the values at the beginning, specify the schedule (minute, hour, day of week, day of month, etc.). Then set the user it runs as, which is likely to be "apache" or whatever your web server daemon is running under. Then set the "command" that cron is running to be php php_email_script.php (where "php_email_script.php" is the name of your PHP file.

like image 63
Nathan Loding Avatar answered Sep 19 '22 19:09

Nathan Loding


30 minutes and still no answer, here's a few open doors:

  • cron reads it's rules from system-wide /etc/crontab, or from you personal crontab which you edit with crontab -e
  • cron takes a format where you say on which minute / hour / day / month things should happen, use google or man crontab for the format
  • cron has the amazing side effect of mailing the output of the command to the user owning the crontab

Now you are stating that you're using php. The easiest way to get some php running from cron, is to issue a wget -O - -q http://yoursite.com/yourprocessingscript.php?verysecret=123123 and have an appropriate processing script on yoursite.com. (you may want to let that script check $_SERVER['REMOTE_ADDR'])

So in short, if you just put the right magic in /etc/crontab, like

0 0 * * * jay wget -q -O - "http://yoursite.com/processmidnight.php?secret=yes_very"

and have your script produce some sensible output, you will get a mail delivered to local user jay, which you may want to forward.

like image 42
mvds Avatar answered Sep 23 '22 19:09

mvds