   #PHP Manual Mail functions ezmlm_hash mailparse functions

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                                     mail

   (PHP 3, PHP 4 )
   mail -- send mail

Description

   bool mail ( string to, string subject, string message [, string
   additional_headers [, string additional_parameters]])

   mail() automatically mails the message specified in message to the
   receiver specified in to. Multiple recipients can be specified by
   putting a comma between each address in to. Email with attachments and
   special types of content can be sent using this function. This is
   accomplished via MIME-encoding - for more information, see this Zend
   article or the PEAR Mime Classes.

   The following RFC's may also be useful: RFC 1896, RFC 2045, RFC 2046,
   RFC 2047, RFC 2048, and RFC 2049.

   mail() returns TRUE if the mail was successfully accepted for
   delivery, FALSE otherwise.

   Warning

   The Windows implementation of mail() differs in many ways from the
   Unix implementation. First, it doesn't use a local binary for
   composing messages but only operates on direct sockets which means a
   MTA is needed listening on a network socket (which can either on the
   localhost or a remote machine). Second, the custom headers like From:,
   Cc:, Bcc: and Date: are not interpreted by the MTA in the first place,
   but are parsed by PHP. PHP < 4.3 only supported the Cc: header element
   (and was case-sensitive). PHP >= 4.3 supports all the mentioned header
   elements and is no longer case-sensitive.

   Example 1. Sending mail.
   <?php
   mail("joecool@example.com", "My Subject", "Line 1\nLine 2\nLine 3");
   ?>

   If a fourth string argument is passed, this string is inserted at the
   end of the header. This is typically used to add extra headers.
   Multiple extra headers are separated with a carriage return and
   newline.

     Note: You must use \r\n to separate headers, although some Unix
     mail transfer agents may work with just a single newline (\n).

   Example 2. Sending mail with extra headers.
   <?php
   mail("nobody@example.com", "the subject", $message,
        "From: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
        "Reply-To: webmaster@{$_SERVER['SERVER_NAME']}\r\n" .
        "X-Mailer: PHP/" . phpversion());
   ?>

   The additional_parameters parameter can be used to pass an additional
   parameter to the program configured to use when sending mail using the
   sendmail_path configuration setting. For example, this can be used to
   set the envelope sender address when using sendmail with the -f
   sendmail option. You may need to add the user that your web server
   runs as to your sendmail configuration to prevent a 'X-Warning' header
   from being added to the message when you set the envelope sender using
   this method.

   Example 3. Sending mail with extra headers and setting an additional
   command line parameter.
   <?php
   mail("nobody@example.com", "the subject", $message,
        "From: webmaster@{$_SERVER['SERVER_NAME']}",
   "-fwebmaster@{$_SERVER['SERVER_NAME']}");
   ?>

     Note: This fifth parameter was added in PHP 4.0.5. Since PHP 4.2.3
     this parameter is disabled in safe_mode and the mail() function
     will expose a warning message and return FALSE if you're trying to
     use it.

   You can also use simple string building techniques to build complex
   email messages.

   Example 4. Sending complex email.
   <?php
   /* recipients */
   $to  = "mary@example.com" . ", " ; // note the comma
   $to .= "kelly@example.com";
   /* subject */
   $subject = "Birthday Reminders for August";
   /* message */
   $message = '
   <html>
   <head>
   <title>Birthday Reminders for August</title>
   </head>
   <body>
   <p>Here are the birthdays upcoming in August!</p>
   <table>
   <tr>
     <th>Person</th><th>Day</th><th>Month</th><th>Year</th>
   </tr>
   <tr>
     <td>Joe</td><td>3rd</td><td>August</td><td>1970</td>
   </tr>
   <tr>
     <td>Sally</td><td>17th</td><td>August</td><td>1973</td>
   </tr>
   </table>
   </body>
   </html>
   ';
   /* To send HTML mail, you can set the Content-type header. */
   $headers  = "MIME-Version: 1.0\r\n";
   $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
   /* additional headers */
   $headers .= "To: Mary <mary@example.com>, Kelly
   <kelly@example.com>\r\n";
   $headers .= "From: Birthday Reminder <birthday@example.com>\r\n";
   $headers .= "Cc: birthdayarchive@example.com\r\n";
   $headers .= "Bcc: birthdaycheck@example.com\r\n";
   /* and now mail it */
   mail($to, $subject, $message, $headers);
   ?>

     Note: Make sure you do not have any newline characters in the to or
     subject, or the mail may not be sent properly.

     Note: The to parameter should not be an address in the form of
     "Something <someone@example.com>". The mail command may not parse
     this properly while talking with the MTA (Particularly under
     Windows).

   See also imap_mail().
   ______________________________________________________________________

   Prev       Home                Next
   ezmlm_hash  Up  mailparse functions
