Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 236
  • Last Modified:

My works exchange server is not recieving mails from the php mail() function

I have developed a script - see attached - to monitor domains at the company i work for.

The problem is that the mail isn't hitting our exchange server. When its sent to my gmail account it works fine but it gets sent straight to the spam box.

I've been looking into a PHP mail class to get this working correctly but Im having problems getting that working - Is there something i am missing that is preventing this to recieve at our exchange

The below code runs a query and sends the results to my email using the mailing function in php
<?
mysql_connect("localhost","user","password"); 
mysql_select_db("dbname") or die( "Unable to select database"); 
 
  
$query=mysql_query("SELECT * FROM `domains` WHERE `exp_date` >= '0000-00-01' ORDER BY exp_date ASC LIMIT 25");
 
if(mysql_num_rows($query)){ 
 
      $to  = "my@email.com"; 
  
      $subject = "Expiry Notice";
   
      $from = "reminder@mydomain.co.uk";
      
      $msg = "<font face='MS Sans Serif'>
Hello,</font><BR><BR>";
  
      $msg .= "<font face='MS Sans Serif'>The next 25 domains to expire are the following:</font><BR><BR>";
      
while($row=mysql_fetch_array($query))
{    
 
  
   $domain_name=$row["domain_name"];
   $company_name=$row["company_name"];
   $simply_account=$row["simply_account"];
   $notes=$row["notes"];
   $id=$row["id"];
   $exp_date=$row["exp_date"];
 
 
      
if($query == TRUE)
    {
 
 
      $msg .= "<font face='MS Sans Serif'><b>$company_name</b>: $domain_name - $exp_date </font><BR>";  
 
}
 
}	
      
      $msg .= "<BR>";
 
      $msg .= "<font face='MS Sans Serif'>Domains Admin</font><BR><BR>";
 
       
  
      $headers = "MIME-Version: 1.0" . "\r\n";
  
      $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
  
      $headers .= "From: reminder@mydomain.co.uk\r\nReply-To:reminder@mydomain.co.uk" . "\r\n";
 
       
 
      $mailsend = mail("$to","$subject","$msg","$headers");
  
      echo $mailsend ? "Email was sent :-)." : " Email sending failed :-(.";
}
?>

Open in new window

0
oku86
Asked:
oku86
  • 3
  • 2
1 Solution
 
Beverley PortlockCommented:
It is likely that your work account's spam filter is stopping the email. It is therefore essential to construct the email in such a way that it does not trigger the spam filter.

I would start by stripping all HTML tags and just send the email through as a simple text email. Remove all the MIME stuff in $headers. It should be easy enough to alter the script you have already and just try it out and see what happens.

Having any HTML in an email ups the spam score.

Try the code below and see if it makes any difference
UNTESTED CODE!!!
 
<?
mysql_connect("localhost","user","password"); 
mysql_select_db("dbname") or die( "Unable to select database"); 
 
  
$query=mysql_query("SELECT * FROM `domains` WHERE `exp_date` >= '0000-00-01' ORDER BY exp_date ASC LIMIT 25");
 
if(mysql_num_rows($query)){ 
 
      $to  = "my@email.com"; 
  
      $subject = "Expiry Notice";
   
      $from = "reminder@mydomain.co.uk";
      
 
      $msg = "The next 25 domains to expire are the following:\r\n\r\n";
      
      while($row=mysql_fetch_array($query))
      {    
          $domain_name=$row["domain_name"];
          $company_name=$row["company_name"];
          $simply_account=$row["simply_account"];
          $notes=$row["notes"];
          $id=$row["id"];
          $exp_date=$row["exp_date"];
               
          if($query == TRUE)
               $msg .= "$company_name: $domain_name - $exp_date\r\n";
     
      }       
      
      $msg .= '\r\n';
      $msg .= "Domains Admin\r\n\r\n";
 
      $headers = "From: reminder@mydomain.co.uk\r\nReply-To:reminder@mydomain.co.uk" . "\r\n";
      
      $mailsend = mail("$to","$subject","$msg","$headers");
  
      echo $mailsend ? "Email was sent :-)." : " Email sending failed :-(.";
}
?>

Open in new window

0
 
oku86Author Commented:
Still not reaching the exchange - i've been working along side the techie who runs our exchange server - hes allowed our email address to the whitelist in messagelabs and made several changes but nothing is coming though -

Just don't understand why its not working - we have just changed webhost to get the cron feature but is kind of pointless if the automated each cant reach us

This script worked fine on our last webhost
0
 
Beverley PortlockCommented:
Have you access to the webserver's mail logs? Can you find the mail transaction and verify that the mail was handed off to the Exchange server?
0
 
oku86Author Commented:
From the webserver on my hosting? no i dont have but ill contact the host techie support to see whats happening

Ta

Dan
0
 
oku86Author Commented:
Ive managed to sort it at.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now