PHPで外部SMTPサーバーを利用したメールの送信方法
PHPで外部SMTPサーバーを利用したメールの送信方法を調べています。
過去の事例からPEARを使用すれば良いことが分かりPEARをインストールしたのですが、
実行すると「$smtp = Mail::factory("smtp", $params);」の所で、
「Fatal error: Class 'Mail' not found in C:\Inetpub\wwwroot\Mail.php on line 14」と
なってしまいます。
PEARのインストール後はサーバーの再起動は行っております。
※環境
OS:WindowsXP Pro SP3
WebServer:IIS
PHP:Ver.5.2.6
※PEARのインストール状態
C:\Documents and Settings\horie>C:\php\pear list
PHP Warning: Module 'mbstring' already loaded in Unknown on line 0
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.3.2 stable
Console_Getopt 1.2.3 stable
PEAR 1.7.1 stable
Structures_Graph 1.0.2 stable
※Mail.php
<?php
$params["host"] = "smtp.mail.yahoo.co.jp";
$params["auth"] = true;
$params["username"] = "AAA-BBB";
$params["password"] = "9999";
$sender = "aaa**@yahoo.co.jp";
$recipient = "bbb**@yahoo.co.jp";
$subject = "TEST";
$subject = mb_convert_encoding($subject, "jis", "sjis");
$subject = mb_encode_mimeheader($subject, "jis");
$message = "テストメッセージ";
$message = mb_convert_encoding($message, "jis", "sjis");
require_once 'Mail.php';
$smtp = Mail::factory("smtp", $params);
if (PEAR::isError($smtp)) die($smtp->getMessage());
$headers['From'] = $sender;
$headers['Subject'] = $subject;
$headers['MIME-Version'] = "1.0";
$headers['Content-Type'] = 'text/plain; charset="iso-2022-jp"';
$headers['Content-Transfer-Encoding'] = "8bit";
$headers['X-Mailer'] = "PHP PEAR/Mail(smtp)";
$error = $smtp->send($recipient, $headers, $message);
if (PEAR::isError($error)) die($error->getMessage());
exit("メッセージを送信しました");
?>
お礼
ありがとうございました。 pearに、こんな便利なものが用意されてたんですね。 サーバーにセットアップできるか調べてから試してみたいと思います。