Mail::send()

Mail::send() -- メールを送信する

概要

require_once 'Mail.php';

mixed send (mixed $recipients, array $headers, string $body)

説明

メールを送信します。 send() 関数は、 factory() から返されたオブジェクトによって提供されます。

パラメータ

返り値

boolean - TRUE か、または失敗した場合は PEAR_Error オブジェクトです。

例外・エラー

表 52-1PEAR_Error の値

メーラドライバエラーコードエラーメッセージ意味解決
sendmailNULL "No from address given." $headers は、 少なくとも from エントリを必要とします、 From ヘッダを追加します:
$headers['From'] = 'mymail@example.com';
sendmailNULL "From address specified with dangerous characters." $headers 配列の from エントリの中に、 RFC に準拠していない文字が含まれています。 From アドレスに与えた文字に、 下記のような文字が無いか検査してください。 半角空白・;&` (バッククォート/バックティック)
sendmailNULL "sendmail [path to sendmail] not executable" sendmail プログラムへのパスが正確ではありません。 実行可能な sendmail が見つかりませんでした。 あなたが Mail::factory() を呼び出したときの、 $param['sendmail_path'] エントリを調べてください。 もし例えば qmail といった sendmail とは別のメーラの場合は メーラのインストールを確認してください。 通常は sendmail ラッパを含んでいるはずです。
sendmailNULL "sendmail returned error code code" sendmail が返すエラーです。 使用者はそれを扱わなければなりません。 あなたのメーラプログラムのドキュメントを参照ください。
smtpPEAR_MAIL_SMTP_ERROR_CREATE "Failed to create a Net_SMTP object" クラス生成の失敗です。 Net_SMTP パッケージの再インストールか更新をします。
smtpPEAR_MAIL_SMTP_ERROR_CONNECT "Failed to connect to host:port" SMTP サーバへの接続に失敗しました あなたが Mail::factory() を呼んだ時の $param['port']$param['host'] エントリを確認します。
smtpPEAR_MAIL_SMTP_ERROR_AUTH "method authentication failure" 認証の失敗です。 あなたが Mail::factory() を呼んだときの $param['auth']$param['username']$param['password'] エントリを確認します。 その SMTP サーバ用の、正しい認証方法を使用してください。
smtpPEAR_MAIL_SMTP_ERROR_FROM "No From: address has been provided" $headers 配列には、少なくとも from のエントリが必要です。 From ヘッダを追加します:
$headers['From'] = 'mymail@example.com';
smtpPEAR_MAIL_SMTP_ERROR_SENDER "Failed to set sender: from" sender (送信者) アドレスの設定に失敗しました。 sender アドレスが RFC に準拠しているかどうか、 またサーバと接続できているかどうかを確認してください。
smtpPEAR_MAIL_SMTP_ERROR_RECIPIENT "Failed to add recipient: recipient " 受信者アドレスの送信に失敗しました。 受信者のアドレスが RFC に準拠しているかどうか、 またサーバと接続できているかどうかを確認してください。
smtpPEAR_MAIL_SMTP_ERROR_DATA "Failed to send data" メールメッセージ本文の送信が出来ませんでした。 メッセージ本文のRFC準拠とサーバ接続を確認してください。

注意

この関数は、スタティックにコールする ことはできません。

<?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';

// Mail::factory メソッドを使用してメールオブジェクトを作成します
$mail_object =& Mail::factory('sendmail', $params);

$mail_object->send($recipients, $headers, $body);
?>

参照

Mail::factory()