Mail::send()
Synopsis
mixed send (
mixed $recipients
, array $headers
, string $body
)
Description
Sends a mail. The send() method is provided by the object returned from factory()
Parameter
-
mixed $recipients
- an array or a string with comma separated recipients. -
array $headers
- an associative array of headers. The header name is used as key and the header value as value. If you want to override the envelope sender of the email, set the Return-Path header and that value will be used instead of the value of the From: header. -
string $body
- the body of the email.
Return value
boolean
- TRUE or
a PEAR_Error object on failure.
Throws
Mailer driver | Error code | Error message | Reason | Solution |
---|---|---|---|---|
sendmail | NULL | "No from address given." |
The $headers array requires
at least a from entry.
|
Add a From header:
<?php |
sendmail | NULL | "From address specified with dangerous characters." |
The from entry in the $headers array
contains one ore more characters which could be non-RFC compliant.
|
Check the given from address for characters like: spaces or
; or & or
` (backtick).
|
sendmail | NULL |
"sendmail [path to sendmail ]
not executable"
|
The path to sendmail program is not correct. No sendmail executable found there. |
Check the $param['sendmail_path'] entry
in your
Mail::factory() call. If you use
another mailer then sendmail, ie. qmail,
check installation of the mailer. Normally it should includes
a sendmail wrapper.
|
sendmail | NULL |
"sendmail returned error code
code "
|
Sendmail returns a error, which must be handled by use. | See the documention of your mailer program. |
smtp | PEAR_MAIL_SMTP_ERROR_CREATE |
"Failed to create a Net_SMTP object" | Failure in class creation. | Reinstall/update the Net_SMTP package. |
smtp | PEAR_MAIL_SMTP_ERROR_CONNECT |
"Failed to connect to
host:port "
|
Connect to SMTP server failed. |
Check $param['port'] and
$param['host'] entries
in your
Mail::factory() call.
|
smtp | PEAR_MAIL_SMTP_ERROR_AUTH |
"method authentication failure"
|
Authentication failed. |
Check $param['auth'] ,
$param['username'] and
$param['password'] entries
in your
Mail::factory() call.
Ensure to use the correct authentication method
for the SMTP server.
|
smtp | PEAR_MAIL_SMTP_ERROR_FROM |
"No From: address has been provided" |
The $headers array requires
at least a from entry.
|
Add a From header:
<?php |
smtp | PEAR_MAIL_SMTP_ERROR_SENDER |
"Failed to set sender: from "
|
Setting the sender address failed. | Check the RFC-compliances of the sender address and the server connnectivity. |
smtp | PEAR_MAIL_SMTP_ERROR_RECIPIENT |
"Failed to add recipient: recipient
"
|
Sending of recipient address failed. | Check the RFC-compliances of the recipient address and the server connnectivity. |
smtp | PEAR_MAIL_SMTP_ERROR_DATA |
"Failed to send data" | Body of the mail message could not send | Check the RFC-compliances of the message body and the server connnectivity. |
Note
This function can not be called statically.
Example
<?php
include('Mail.php');
$recipients = 'joe@example.com';
$headers['From'] = 'richard@example.com';
$headers['To'] = 'joe@example.com';
$headers['Subject'] = 'Test message';
$body = 'Test message';
$params['sendmail_path'] = '/usr/lib/sendmail';
// Create the mail object using the Mail::factory method
$mail_object =& Mail::factory('sendmail', $params);
$mail_object->send($recipients, $headers, $body);
?>