|
初めて書き込みをします。 早速ですが質問があります。 現在osをredhat6.2Jでsendmail8-9-3を使いメールサーバーを構築中です。 そこでcgiを使いメールを発信させると受信したメールのヘッダーのRecievedの部分の Fromがnobody@localhostとなってしまいます。。 こちらとしてはホストのアドレスを載せたいのですが・・・。 cgiは、 #! /usr/bin/perl $toname = 'xxx@aaa.bbb'; $fromname = 'yyy@ccc.ddd'; open(MAIL, "| /usr/lib/sendmail -t -i -f yyy") || die; print MAIL "from:$fromname\n"; print MAIL "to:$toname\n"; print MAIL "Subject: TEST\n"; print MAIL "Content-Type: text/plain;\n\n"; print MAIL "TEST\n"; close(MAIL); print "Content-type: text/html\n\n"; print <<END_OF_DATA; <HTML> <BODY>SendMail $err</BODY></HTML> END_OF_DATA exit; fromで指定したほうがもちろんサーバー側で,toで指定した方がクライアント側です。 sendmail.cfの編集にはsendmail.defを使っています。 はたしてcgiが悪いのかsendmailの設定がまずいのでしょうか? sendmail.defの設定がまずいなら一体どこを変えればいいのか。 ご教授の程をお願いいたします。 |
|
>>1857 ケンMK2 > Fromがnobody@localhostとなってしまいます。。 これってやっぱりまずいのかなぁ? Received に名前解決不可能な サーバ名が書いてあるメールって結構ありますよね。でも、それは ファイアウォールの中からだから許されるのかな。さすがに localhost はまずいかもしれない。 sendmail をまともに管理したことがないため正しい解決策はわかり ませんが、手元にある sendmail.def (sendmail-v8.def をいじった もの) には、 OFFICIAL_NAME='foo.bar.com' とあります。その他は特に設定していません。それを元に生成した /etc/sendmail.cf には Djfoo.bar.com と書いてあります。 Dj(サーバの FQDN) ですね。 あと、ユーザ名が nobody になるのもどうなんでしょうねぇ。 他の行に envelope from yyy などと -f で指定したユーザ名が 書いてあると思うので、それはそれでよいような気もするんですが…。 ちなみに手元の環境でも envelope from nobody となりますが、 僕がいいかげんに管理している sendmail なので、正しいか どうかはかなり怪しいです。 |
|
ケンさん> わーい。回答が書けるー わたしは、このようにしています。 $from = "kaori.iida\@morning.musume"; $to = "natsumi.abe\@morning.musume"; open MAIL, "|/usr/local/bin/nkf -j |/usr/sbin/sendmail -t -f $from" or die $!; print MAIL <<EOM; To: $to From:$from Subject: こんにちはー 元気だべさ。 EOM close MAIL; これで、次のようなメールが届きます。 To: natsumi.abe@morning.musume From: kaori.iida@morning.musume Subject: こんにちはー 元気だべさ。 ポイントは、-f パラメタで渡すのはエラーのときの戻りメールの宛て先で、 From: フィールドをメールの中に再度書かないといけないようです。 なお、スクリプトは EUC で、メールは JIS でないと文字化けするので、 nkf -j をかましています。 |
|
>>1858 68user >> Fromがnobody@localhostとなってしまいます。。 > これってやっぱりまずいのかなぁ? Received に名前解決不可能な > サーバ名が書いてあるメールって結構ありますよね。でも、それは > ファイアウォールの中からだから許されるのかな。さすがに > localhost はまずいかもしれない。 jp.FreeBSD.org の sendmail 君が付けた received も localhost に なっていました。少なくともあそこは変な設定になってはいない だろうということで、問題ないんじゃないでしょうか。 |
|
質問では有りませんが、気になったもので・・・ 自分の借りているレンタルサーバーのログに以下のような行がありました。 xxx.xxx.xxx.xxx - - [28/Mar/2001:20:00:52+0900] "GET http://www.intel.com/ HTTP/1.1" 200 1846 "-" "Mozilla/4.0 (compatible; MSIE 4.01; Windows 95)" これってどう解釈すればいいのでしょう? 当然ですが該当するURLにファイルはありません。 試しに自己保有のLinux版Apacheに telnet でいろいろ試してみましたが、 ステータス 200 が出ることは有りませんでした。 単にサーバーのログ記録ミス(エラー?)なのでしょうか? こちらでも、こんなログが残る事は有りましたでしょうか? なんとなく気持ちが悪いので、判る方がいらっしゃれば教えてください。 |
|
>>1861 すな > 試しに自己保有のLinux版Apacheに telnet でいろいろ試してみましたが、 > ステータス 200 が出ることは有りませんでした。 FreeBSD 4.1-RELEASE + apache-1.3.12 で、 GET http://www.intel.com/ HTTP/1.0 でステータス 200 が出ました。ブラウザを普通に使っていれば、 PATH は必ず / から始まるはずですが、先頭が / でない PATH を 要求すると 200 が返るんですね。これって仕様かしら? |