Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 02 Dec 2003 10:23:12 -0800
From:      Scottie Swenson <swenson@heronetwork.com>
To:        bsd@time-on.com
Cc:        freebsd-isp@freebsd.org
Subject:   Re: sendmail using phpmail
Message-ID:  <3FCCD890.6010205@heronetwork.com>
In-Reply-To: <3fcc2a97.2cde.0@time-on.com>
References:  <3fcc2a97.2cde.0@time-on.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Greetings,

We host a lot of virtual domain web sites on BSD boxes that are running PHP 
forms and sending out tons of email. Sometimes PHP doesn't figure out the right 
path for the sendmail program. So your first check is to make sure PHP is using 
sendmail correctly for your particular box. The builting phpinfo() command puts 
out a nice summary of your php build including all the build options. You need 
to make sure PHP was compiled with the correct path to sendmail.

A php check web page:
----- cut here -----
<?php phpinfo(); ?>
----- cut here -----

In the CORE PHP configuration section look for the setting 'sendmail_path'. 
Ours is set to '/usr/sbin/sendmail -t -i'

You can test to see if PHP can send email using the code I included bellow. 
Given that PHP can send email phpmail should start working.

I am not sure how phpmail handles the mail but we have found email works a LOT 
better if some extra header information is included. Here is the PHP code you 
can use to check to see if PHP is able send messages from a functioning email 
form on a BSD box:

email.php:
----- cut here -----
<?php
   $_toEmailAddress = "info@somedomain.com";
   $_ccEmailAddress = "";
   //$_bccEmailAddress = "alternate@destination.com";

   $_subject = $_POST[ "subject" ];
   $_comments = $_POST[ "message" ];
   $phone = $_POST[ "phoneNumber" ];
   $name = $_POST[ "name" ];
   $_from = "\"$name\" <" . $_POST[ "email" ] . ">";
	
	if ( $_POST[ "cc_me" ] == "on" ) {
	  $_ccEmailAddress = $_from;
	}

   $message = "\n\nName: " . $name . "\n";
   $message .= "Email: " . $_from . "\n";
   $message .= "Phone Number: " . $phone . "\n";
   $message .= "\nMessage: " . $_comments . "\n\n";

   $_headers = "";
   //$_headers .= "MIME-Version: 1.0\r\n";
   //$_headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
   $_headers .= "From: $_from\r\n";
   //$_headers .= "To: ".$_toEmailAddress."\r\n";
   if (! empty($_bccEmailAddress) ) {
       $_headers .= "BCC: ".$_bccEmailAddress."\r\n";
   }
   if (! empty($_ccEmailAddress) ) {
       $_headers .= "CC: ".$_ccEmailAddress."\r\n";
   }
   $_headers .= "Reply-To: $_from\r\n";
   $_headers .= "X-Priority: 1\r\n";
   $_headers .= "X-MSMail-Priority: High\r\n";
   $_headers .= "X-Mailer: Hero Network Email System";

   $mailresponse = mail("$_toEmailAddress",
                        "$_subject",
                        "$message",
                        $_headers
                        );
?>
----- cut here -----

email_form.html
----- cut here -----
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
   <head>
     <title>
       Untitled
     </title>
   </head>
   <body>
     <form action="email.php" method="post">
       <table border="0" width="383" cellpadding="2" cellspacing="0" 
align="center">
         <tr>
           <td width="63" style="font-family: arial, san-serif; font-size: 
12px; color: #333366;" align="right">Name:</td>
           <td><input type="text" class="name_text" name="name" size="20"></td>
         </tr>
         <tr>
           <td width="63" style="font-family: arial, san-serif; font-size: 
12px; color: #333366;" align="right">Email:</td>
           <td><input type="text" class="name_text" name="email" size="20"> 
<img src="img/required.gif" alt="Required" width="9" height="8"></td>
         </tr>
         <tr>
           <td colspan="2" style="font-family: arial, san-serif; font-size: 
12px; color: #333366;">Send a copy of this message to me too: <input 
type="checkbox" name="cc_me" checked="" value="ON">
           </td>
         </tr>
         <tr>
           <td width="63" style="font-family: arial, san-serif; font-size: 
12px; color: #333366;"><p align="right" style="text-align: right">Phone:</p></td>
           <td><input type="text" class="name_text" name="phoneNumber" 
size="20"></td>
         </tr>
         <tr>
           <td colspan="2">
             <br>
             <p style="font-family: arial, san-serif; font-size: 12px; color: 
#333366;">
               To best route your email, please select the most appropriate 
category:
             </p>
             <select class="greySelect" name="subject">
               <option class="optionRed" value="Request Information" 
selected>Request information</option>
               <option class="optionRed" value="Owner Contact Request">Send 
Message Directly To Owner</option>
               <option class="optionRed" value="Requesting 
Something">Other</option>
             </select><br>
             <br>

             <p style="font-family: arial, san-serif; font-size: 12px; color: 
#333366;">Input message here.</p>
              <textarea class="input_text" rows="20" cols="50" 
style="font-family: arial, san-serif; font-size: 12px; color: navy; 
scrollbar-base-color:pink;scrollbar-arrow-color: #ee0000;" name="message" 
size="15"></textarea>
             <p align="center"><input type="submit" value=" Send Request " 
name="Submit" style="font-family: arial, helvetica, san-serif; font-size: 13px; 
color: #ffffff; background: #006633;"></p>
             <br>
             <br>
             <br>
           </td>
         </tr>
       </table>
     </form>
   </body>
</html>
----- cut here -----

Cheers,
Scottie



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FCCD890.6010205>