11111
(PHP 3, PHP4, PHP 5)mail -- Send mail
- Sends an email.
to
- Receiver, or receivers of the mail.
- The formatting of this string must comply with
RFC 2822. Some examples are:
user@example.com |
user@example.com, anotheruser@example.com |
User <user@example.com> |
User <user@example.com>, Another User <anotheruser@example.com> |
subject
- Subject of the email to be sent.
Предостережение |
- This must not contain any newline characters, or the mail may not be
sent properly. |
message
- Message to be sent.
- Each line should be separated with a LF (\n). Lines should not be larger
than 70 characters.
Предостережение | |
- (Windows only) When PHP is talking to a SMTP server directly, if a full
stop is found on the start of a line, it is removed. To counter-act this, replace these occurrences with a double dot.
|
additional_headers (optional)
- String to be inserted at the end of the email header.
- This is typically used to add extra headers (From, Cc, and Bcc).
Multiple extra headers should be separated with a CRLF (\r\n).
Замечание:
When sending mail, the mail must contain
a From header. This can be set with the
additional_headers parameter, or a default
can be set in php.ini.
- Failing to do this will result in an error
message similar to Warning: mail(): "sendmail_from" not
set in php.ini or custom "From:" header missing.
Замечание:
If messages are not received, try using a LF (\n) only.
Some poor quality Unix mail transfer agents replace LF by CRLF
automatically (which leads to doubling CR if CRLF is used).
This should be a last resort, as it does not comply with
additional_parameters (optional)
- 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.
- The user that the webserver runs as should be added as a trusted user to the
sendmail configuration to prevent a 'X-Warning' header from being added
to the message when the envelope sender (-f) is set using this method.
For sendmail users, this file is /etc/mail/trusted-users.
- Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
- It is important to note that just because the mail was accepted for delivery,
it does NOT mean the mail will actually reach the intended destination.
Версия | Описание |
---|---|
4.3.0 (Windows only) | - All custom headers (like From, Cc, Bcc and Date) are supported, and are
not case-sensitive. (As custom headers 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). |
4.2.3 | - The additional_parameters parameter is disabled in
safe_mode and the mail() function will expose a warning message and return FALSE when used. |
4.0.5 | - The additional_parameters parameter was added. |
Пример 2. Sending mail with extra headers. - The addition of basic headers, telling the MUA the From and Reply-To addresses:
|
Пример 3. Sending mail with an additional command line parameter. - 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.
|
Пример 4. Sending HTML email - It is also possible to send HTML email with mail().
|
Замечание:
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.
- As such, 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.
Замечание:
Email with attachments and special
types of content (e.g. HTML) can be sent using this function. This is
accomplished via MIME-encoding - for more information, see this
- Zend article or the - PEAR Mime Classes.
Замечание:
It is worth noting that the mail() function is not
suitable for larger volumes of email in a loop. This function opens
and closes an SMTP socket for each email, which is not very efficient.
- For the sending of large amounts of email, see the
PEAR::Mail, and
PEAR::Mail_Queue packages.
Замечание:
The following RFCs may be useful:
RFC 2049, and
imap_mail() |
PEAR::Mail |
PEAR::Mail_Mime |
ezmlm_hash
mailparse Functions 22222