PEAR::Mail を使ったメール送信

PEAR:Mailを使ってPHPでメールを送信するプログラムを作成します。

コード

<?php
//PEARディレクトリにパスを通してある場合
require_once("Mail.php");
require_once("Mail/mime.php");

//PEARディレクトリにパスを通していない場合
//require_once("C:/php/PEAR/Mail.php");
//require_once("C:/php/PEAR/Mail/mime.php");

$params = array(
  "host" => "mail.ixx.jp",
  "port" => 25,
  "auth" => false
);

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

$recipients = "internal@intra.ipentec.com";
$header = array(
  "To" => "internal@intra.ipentec.com",
  "From" => "websystem@robot.ipentec.com",
  "Subject" => "Auto Mail from WebSystem"
);
$body = "Test Mail";

$mailObject -> send($recipients, $header, $body);
?>

解説

require_once("Mail.php");
require_once("Mail/mime.php");

require_once関数を用いて Mail.php Mail/mime.phpを読み込みます。

$params = array(
  "host" => "mail.ixx.jp",
  "port" => 25,
  "auth" => false
);
連想配列を作成し、メールサーバーのホスト、ポート番号、SMTP Authの有り無しを設定します。

$mailObject = Mail::factory("smtp", $params);
factoryメソッドを用いてMailインスタンスを作成します。

バックエンド名

factoryメソッドの第一引数はバックエンド名です。バックエンドは以下の値をとります。

mailPHP の組込関数である mail()関数を利用します。
sendmailsendmail プログラムを利用します。
smtpSMTP サーバに接続してメールを送信します。


バックエンド名がmailの場合のパラメーター

mail() 関数の5番目の引数(additional_parameters)を設定します。

バックエンド名がsendmailの場合のパラメーター

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

バックエンド名がsmtpの場合のパラメーター

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


$recipients = "internal@intra.ipentec.com";
にて送信先のメールアドレスを設定します。複数人にメールを送信する場合はメールアドレスを","カンマで区切ります。

$header = array(
  "To" => "internal@intra.ipentec.com",
  "From" => "websystem@robot.ipentec.com",
  "Subject" => "Auto Mail from WebSystem"
);

にてメールヘッダを作成します。今回はTo,From,Subjectのヘッダを用意しました。

$body = "Test Mail";
メール本文のデータを準備します。

$mailObject -> send($recipients, $header, $body);
Mailインスタンスのsend()メソッドを用いてメールを送信します。第一引数が送信先のメールアドレス(受取アドレス)、第二引数がヘッダの連想配列、第三引数がメール本文になります。

実行

PHPのファイルにウェブブラウザでアクセスすると $recipients に指定したメールアドレスに対してメールが送信されます。

補足

PEAR::Mailのモジュールのインストールはこちらの記事を参照してください。

AuthorPortraitAlt
著者
iPentecのプログラマー、最近はAIの積極的な活用にも取り組み中。
とっても恥ずかしがり。
作成日: 2011-05-30
Copyright © 1995–2025 iPentec all rights reserverd.