Mailクラスのオブジェクトの作成

広告

まずMailを利用するためにはMailクラスのオブジェクトを作成する必要があります。オブジェクトを作成するにはMailクラスで用意されている「factory」メソッドを使います。

引数:
  $backend  バックエンド名を指定「mail」「smtp」「sendmail」のいずれ
    かを指定する
  $params  パラメータの配列
戻り値:
  特定の Mail インスタンス、 または失敗した場合は PEAR_Error オブ
    ジェクト

1番目の引数にメールをどのように送信するかを指定します。指定できる値と送信方法は次の通りです。

バックエンド名送信方法
mailPHP の組込関数 mail() を使用して送信します
sendmailsendmail プログラムにより送信します
smtpSMTP サーバに直接接続してメールを送信します

2番目の引数にはバックエンド毎に異なるパラメータを指定します。

バックエンドとして「mail」を指定した場合には引数「$params」の値は「mail」関数の5番目の引数として渡されます。

バックエンドとして「sendmail」を指定した場合には次のような連想配列の形式で「$params」を指定します。

パラメータ設定する値
sendmail_pathsendmailへのパス(デフォルトは「/usr/bin/sendmail」)
sendmail_argssendmailへ渡すパラメータ

バックエンドとして「smtp」を指定した場合には次のような連想配列の形式で「$params」を指定します。

パラメータ設定する値
hostSMTPサーバ名(デフォルトは「localhost」)
portポート番号(デフォルトは「25」)
authSMTP 認証を使用するかどうか(デフォルトは「false」)
usernameSMTP 認証で使用するユーザ名
passwordSMTP 認証で使用するパスワード
localhostEHLO あるいは HELO を送信する際に使用する値(デフォルトは「localhost」)
timeoutSMTP 接続のタイムアウト(デフォルトは「NULL」)
verpVERP を使用するかどうか(デフォルトは「false」)
debugSMTP デバッグモードを使用するかどうか(デフォルトは「false」)
persistSMTP 接続を、send() メソッドの複数回呼出しで持続させるかどうか

これ以降はバックエンドとして「smtp」を使った方法を試して行きます。この場合例えば次のように記述します。

$params = array(
  "host" => "xxx.xxx.xxx.xxxx",
  "port" => 25,
  "auth" => false
);

$mailObject = Mail::factory("smtp", $params);

「SMTPサーバ名」及びポート番号などはご利用になるSMTPサーバに合わせて変更して下さい。

( Written by Tatsuo Ikura )