PEAR Manual
Prev |  | Next

# Mail::factory()

Mail::factory() -- creates a mailer instance

## Synopsis

    require_once 'Mail.php';

``object &factory` (string $backend [, array $params = array()])`

## Description

Creates a instance of a backend-specific mailer class.

## Parameter

- `string $backend` - the name of the backend `"mail"`,`"smtp"`, `"sendmail"`

- `array $params` - a array of backend specific parameters.

  List of parameter for the backends

  - `mail`

    - If safe mode is disabled, `$params` will be passed as the fifth argument to the PHP mail() function. If `$params` is an array, its elements will be joined as a space-delimited string.

  - `sendmail`

    - `$params["sendmail_path"]` - The location of the sendmail program on the filesystem. Default is `/usr/bin/sendmail`

    - `$params["sendmail_args"]` - Additional parameters to pass to the sendmail program.

  - `smtp`

    - `$params["host"]` - The server to connect. Default is `localhost`

    - `$params["port"]` - The port to connect. Default is `25`

    - `$params["auth"]` - Whether or not to use SMTP authentication. Default is `FALSE`

    - `$params["username"]` - The username to use for SMTP authentication.

    - `$params["password"]` - The password to use for SMTP authentication.

    - `$params["persist"]` - Indicates whether or not the SMTP connection should persist over multiple calls to the send() method.

## Return value

`object` - a specific Mail instance or a PEAR_Error object, if fails

## Throws

Table 46-1. Possible PEAR_Error values

Error code | Error message | Reason | Solution
--- | --- | --- | ---
`NULL` | "Unable to find class for driver `xxx`" | Mailer backend class was not found. | Check the `$backend` parameter, if correct reinstall and/or update your Mail package.

## Note

This function should be called statically.

## See

"Introduction"

Prev | Home | Next
Introduction | Up | Mail::send()