[PHP-users 28425] 自分のコンピュータ内でメールの送信環境を作るには?

kotokawa kotokawa @ oic.ed.jp
2006年 2月 16日 (木) 11:20:07 JST


はじめて投稿します。のりと申します。
書籍:実例で身につける!MySQL×PHPによる本格WeB‐DBシステム入門―Webアプリ
ケーション開発のポイントアドバンストサーバサイドプログラミング
を使って勉強を始めました。自分のコンピュータ内でサーバを立ち上げて練習をして
います。

自分のコンピュータ内でPHPのメール送信のテストをしたいのですがエラーメッセー
ジがでてしまいます。
送信環境はどのように作ればいいのでしょうか?
説明がうまくでききれないのですが下記のことからお分かりの方がいましたら教えて
ください。

環境
* PHPのバージョン: PHP Version 5.1.2
・Apache 2.0 Handler
* OSの名前、バージョン:WindowsXP prp
* データベースの名前、バージョン :MySQL Client Version5.0.11
・メールサーバ:ArGoSoft Mail Server Freeware1.8
	Pop3:localhost
	SMTP:localhost
でtest @ localhostというアドレスを作って、OutlookExpressで確認済み。

* エラーメッセージ(正確に)
 WEB画面でユーザー登録をしてメールを送るということをしようとしています。ユー
ザ登録内容(氏名、電子メールなど)
ユーザ登録をして、登録ボタンを押すと以下のエラーメッセージが出ます。
「Warning: mb_send_mail() [function.mb-send-mail]: Failed to connect to
mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port"
setting in php.ini or use ini_set() in C:\00web\web_db\chap3\sample2\regist.
php on line 23」
line 23は、「mb_send_mail(gpc_stripslashes($_POST['email']), "登録完了のお知
らせ", $msg, "From: test @ localhost");」です。

* 動作させようとしているスクリプト:少し長いのですが、regist.phpです。
<?php
require("function.php");
require("check_values.php");
if (is_array($error)) {
	echo "不正なアクセスです。";
	exit;
}
$con = mysql_connect("localhost", "chap3dbu", "chap3pass");
mysql_select_db("chap3db");
$sql = "insert into members (name, fname, ename, phone, email) values ('" .
$_POST["name"] . "','" . $_POST["fname"] . "','" . $_POST["ename"] . "','" .
$_POST["phone"] . "','" . $_POST["email"] . "')";
$res = mysql_query($sql);
mysql_close($con);
$fp = fopen("mail.txt", "r");
$msg = "";
while ($x = fgets($fp)) {
	$x = mb_ereg_replace("%%EMAIL%%", gpc_stripslashes($_POST['email']),
$x);
	$x = mb_ereg_replace("%%NAME%%", gpc_stripslashes($_POST['name']),
$x);
	$msg .= $x;
}
mb_send_mail(gpc_stripslashes($_POST['email']), "登録完了のお知らせ", $msg,
"From: test @ localhost");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>登録完了画面</title>
<body>
ご登録ありがとうございました。
</body>
</html>
* 試行錯誤した内容・結果(正確に)
スクリプトからメールサーバにデータを送るときにエラーが起こっているのかなと思
いました。
一度、WINDOWSにあるSMTPサーバをインストールしてサービスとして動かしました。
(この際はArGoSoft Mail Serverとの兼ね合いの設定がよくわからずOutlookExpress
での送受信もうまくいきませんでした。)





PHP-users メーリングリストの案内