PHP Manual
Prev |  | Next

# LXXIX. Mail Functions

# Introduction

The mail() function allows you to send mail.

# Requirements

For the Mail functions to be available, PHP must have access to the `sendmail` binary on your system during compile time. If you use another mail program, such as qmail or postfix, be sure to use the appropriate sendmail wrappers that come with them. PHP will first look for sendmail in your `PATH`, and then in the following: `/usr/bin:/usr/sbin:/usr/etc:/etc:/usr/ucblib:/usr/lib`. It's highly recommended to have sendmail available from your `PATH`. Also, the user that compiled PHP must have permission to access the sendmail binary.

# Installation

There is no installation needed to use these functions; they are part of the PHP core.

# Runtime Configuration

The behaviour of these functions is affected by settings in `php.ini`.

Table 1. Mail configuration options

Name | Default | Changeable | Changelog
--- | --- | --- | ---
SMTP | "localhost" | PHP_INI_ALL |
smtp_port | "25" | PHP_INI_ALL | Available since PHP 4.3.0.
sendmail_from | NULL | PHP_INI_ALL |
sendmail_path | NULL | PHP_INI_SYSTEM |

For further details and definitions of the PHP_INI_* constants, see the Appendix H.

Here's a short explanation of the configuration directives.

`SMTP` string

  Used under Windows only: host name or IP address of the SMTP server PHP should use for mail sent with the mail() function.

`smtp_port` int

  Used under Windows only: Number of the port to connect to the server specified with the `SMTP` setting when sending mail with mail(); defaults to 25. Only available since PHP 4.3.0.

`sendmail_from` string

  Which "From:" mail address should be used in mail sent from PHP under Windows. This directive also sets the "Return-Path:" header.

`sendmail_path` string

  Where the sendmail program can be found, usually `/usr/sbin/sendmail` or `/usr/lib/sendmail`. configure does an honest attempt of locating this one for you and set a default, but if it fails, you can set it here.

  Systems not using sendmail should set this directive to the sendmail wrapper/replacement their mail system offers, if any. For example, Qmail users can normally set it to `/var/qmail/bin/sendmail` or `/var/qmail/bin/qmail-inject`.

  qmail-inject does not require any option to process mail correctly.

  This directive works also under Windows. If set, `smtp`, `smtp_port` and `sendmail_from` are ignored and the specified command is executed.

# Resource Types

This extension has no resource types defined.

# Predefined Constants

This extension has no constants defined.

Prev | Home | Next
lzf_optimized_for | Up | ezmlm_hash