プロが教えるわが家の防犯対策術!

XMail付属のsendmail機能を利用してphpでフォームメールを作りたいのですが
どうやればうまくいくのか分かりません。

環境は
windowsxp pro sp2
apache 2.0.55
php 5.1.2

ルーター
corega BAR FX2
バーチャルサーバ設定で
サーバーPCの25 と110 を解放

ドメインvaluedomain

ホスト名 ターゲット タイプ MX
mail 219.xxx.xxx.xxx A 10
@ mail.bbb.com MX 10


XMail基本セットアップ
レジストリの登録
■ 登録1 -- XMail 起動時オプション
-Cl -Mr 24 -Pl -Ql -Sl
■ 登録2 -- sendmail 実行時のデフォルトドメイン
mail.bbb.com

SMTPリレー許可
■IPアドレス ■ネットマスク ■コメント ■処理
10.0.0.0 255.0.0.0 編集 削除
127.0.0.0 255.255.255.0 編集 削除
172.16.0.0 255.255.0.0 編集 削除
192.168.0.0 255.255.0.0 編集 削除



XMail環境設定

■基本設定
ルートドメイン (RootDomain) → mail.bbb.com
POPデフォルトドメイン (POP3Domain) → mail.bbb.com
ポストマスターアドレス (PostMaster) → postmaster@mail.bbb.com
SMTPハロードメイン (HeloDomain) → プロバイダのドメイン
SMTPサーバドメイン (SmtpServerDomain) → mail.bbb.com

php.ini設定

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path ='C:/xmail/SendMail.exe';



phpのmail関数で送信テストをしたのですがまったく届きません。
test.php
$atesaki=自分のメールアドレス;
mail("$atesaki", "$kenmei","$naiyou \n\n");


コマンドラインでは届きます
c:\xmail>type changelog.txt | sendmail 送信先アドレス

で送った場合送られてきたメールの送信者欄には
自分の使っているパソコンユーザーの名前@mail.bbb.com
あて先には
undisclosed-recipients: と表示されます。

XMailのsendmail設定を検索してみたのですがどれもうまくいきませんでした。
メールサーバー自体はじめてなのでどこをどういじったらいいのか分かりません。
この設定がおかしい、どこがおかしい、ここを見ろ等ありました教えてください。
よろしくお願いします。

A 回答 (2件)

>Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Apache2\htdocs\



mail()でFromを指定していないのに、defaultのFromの設定もないということです。

>; For Win32 only.
>;sendmail_from = me@example.com

ここでsendmail_fromをコメントアウトしているからでは?Xmailで設定したドメインのpostmasterかroot(アカウントは作成されてますよね?)を指定しておけばいいと思います。


あと、

>設定したメールアカウント宛に外部からメール送信しても受信しません。
>  (snip)
>bbb@bbb.com → aaa@aaa.com(設定したアカウント) 受信できない

これはphpと無関係にXmailの話になりますが・・。「外部から」ということは設定したドメインのDNS設定とかルータのポート開放などの問題ではないですか?
    • good
    • 0
この回答へのお礼

おっしゃる通りポートの問題でした。
ルーターのポートばかり気にしていて
windowsのファイアーウォールのポートがふさがってました。
windows側のポートを開放したところ
XmailCFGにてメールの送受信ができるようになりました。

sendmailに関しても

sendmail_from = me@example.com
としたことで送信できるようになりました。

あとは文字化けしてるみたいなんでその辺の修正をしてみます。
休みの間中ずっとやってたのでほんとに助かりました。
ありがとうございます。
今の状態で利用するのはちょっと危なさそうですので
もう少しいじれるようになってから運用したいと思います。

お礼日時:2008/02/12 16:26

sendmail_pathはFor Unix onlyですから、コメントアウトのままにしてください。

Xmailをインストールされているのであれば(sendmailのpathを指定しなくても)SMTPをlocalhostにして送信できますよ。

この回答への補足

> XMailCFGからはメッセージの送受信が可能となっています。

設定したメールアカウント宛に外部からメール送信しても受信しません。

XMailCFGの画面から
aaa@aaa.com(設定したアカウント) → bbb@bbb.com 送信できる
aaa@aaa.com(設定したアカウント) → aaa@aaa.com(設定したアカウント) 送受信できる
bbb@bbb.com → aaa@aaa.com(設定したアカウント) 受信できない

という状況です。

補足日時:2008/02/10 22:29
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
コメントアウトしましたエラーが出ました
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path ='c:/xmail/sendmail.exe';



Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\Apache2\htdocs\

それと
XMailCFGからはメッセージの送受信が可能となっています。

お礼日時:2008/02/10 22:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!