|
>>1854 d-jiro > HTTPS相手のPOSTでのCGI接続は、Crypt-SSLeayモジュールを導入し、 > LWPを使うことで解決しました。 それはよかった。こちらの環境でも試してみましたが、 うまくいったようです。 >>1853 PHP > 一キーワードは簡単に出来るのですが、このスペース区切りで > 複数キーワードを引数にする方法がわかりません 複数キーワードに分割というのは $keyword = 'foo bar baz'; @keywords = split(/\s+/, $keyword); といったことですか? あるいは、複数のキーワードで検索するという ことですか? 後者ならば http://wakusei.cplaza.ne.jp/twn/wwwsrch.htm というのが参考になるかもしれません。 この CGI スクリプトは素直な書き方になっていますが、サーバへの 負荷はかなりのもので、実用には向きません。 最初のとっかかりとして、参考程度にとどめておくのがいいでしょう。 高速化のヒントは eval です。 |
|
http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?howtouse に ・環境はできるだけ詳しく ・マルチポスト禁止 ・回答をもらったら結果を報告する という注意点を追加しました。この場でいちいち注意したくはないので、 質問する前に是非ご一読下さい。 また、各メッセージの「No.1504 # 68user」などという表示の「#」を クリックすると、 http://X68000.startshop.co.jp/~68user/cgi-bin/wwwboard.cgi?log=1500-1600#1504 というリンクに飛ぶようにしました。 # 更新履歴: # http://X68000.startshop.co.jp/~68user/cgi-bin/cvsweb.cgi/public_html/cgi-bin/wwwboard.cgi やはり設計が甘かったようで、この掲示板に美しく機能拡張するのは もう無理みたいです。スクラッチから書き直したいけど、きれいに 書ける自信がない…。 |
|
初めて書き込みをします。 早速ですが質問があります。 現在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 に なっていました。少なくともあそこは変な設定になってはいない だろうということで、問題ないんじゃないでしょうか。 |