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.
    
| 警告 | 
| 
      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.
      | 
     
| 例子 1. Sending mail. | 
<?phpmail("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.
    
注: 
     You must use \r\n to separate headers, although
     some Unix mail transfer agents may work with just a single newline
     (\n).
     
     
| 例子 2. Sending mail with extra headers. | 
<?phpmail("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.
     
| 例子 3. Sending mail with extra headers and setting an additional command line parameter. | 
<?phpmail("nobody@example.com", "the subject", $message,
 "From: webmaster@{$_SERVER['SERVER_NAME']}", "-fwebmaster@{$_SERVER['SERVER_NAME']}");
 ?>
 | 
 | 
    注: 
      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.
     
| 例子 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);
 ?>
 | 
 | 
    注: 
       Make sure you do not have any newline characters in the
       to or subject,
       or the mail may not be sent properly.
     
注: 
      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().