Missing Env. Variables when called by AT Scheduler

From: Date: Tue, 07 Oct 2008 23:16:11 +0000
Subject: Missing Env. Variables when called by AT Scheduler
Groups: php.general 
Request: Send a blank email to php-general+get-281544@lists.php.net to get a copy of this message
We regularly send out massive mail blasts to our customers. Recently several mail blasts failed to transmit. After a serious amount of research we found the snippet of code below to be the place where it was breaking down. The issue it seems is that the Environment Variables HOST and SERVER_NAME are sometimes not returning true when executed from the Linux AT scheduler. (using atq commands). doing a php -i from the command line returns the correct values, as does putting in a php info command at the top of the script and opening it from a browser. Does anyone have any clues about why a script called from the AT scheduler would be unable to detect what server it is on and behave appropriately? function send_mail($subject, $subject_name, $from, $email, $customer_name, $html_message, $text_message, $customer_id=0) {
       if($_SERVER['HOST'] == 'domain.com' || $_SERVER['SERVER_NAME']=='customer.domain.com') {
               global $mail;
               if(!is_object($mail)) {
                       $mail = create_mail();
               }
       } else {
               // If on staging server don't send emails to any address outside company
               if(!stristr($email, '@domain.com')) return true;
               $mail = Mail::factory('mail');
Thanks, Joel

« previous php.general (#281544) next »