プログラム質問箱への投稿
記事番号00013へのフォローを投稿します。
引用記事中のHTMLをエスケープせずに
そのまま引用
することも出来ます。
お名前(ペンネイムで結構ですが必要です)
(
ブラウザに個人情報を覚えさせない)
電子メイルアドレス(必要です)
題名(必要です)
Home Page がある方はリンク希望先の URL を記載して下さい
会議室に載せたい内容を以下へお書き下さい (
HTMLを解釈せずにそのまま表示)
7月4日に、にあさんは書きました。 >7月4日に、naokiさんは書きました。 > >>7月8日よりプロバイダーのサービスを開始することになったのですが、 >>お客さんの中にフォームを使ってその内容をメールに送って欲しいという >>要望があったのですが、簡単にaction=maito:でやろうとすると文字化けしてしまうので >>CGIを積極的に使ってやりたいなーと思っているのですがなんとかお力貸してください。 >> >少々苦言を述べます。 > >個人でホームペエヂを立ち上げている方がこの様な質問をなさるのなら何の不思議も >ありませんが、いやしくもプロバイダのサーヴィスをしようと言う方が、CGIでメイルを >出す方法を聞いているのでは、チョット調査不足も甚だしいのでは? > >漢字で書かれたフォームの内容をメイルすると言うのは、ある意味 CGI 利用の第一歩 >でもあるので、どこにでも参考になるものはあるでしょうし、別に自分で書いても >大変なものでも無いでしょう。 > >もちろん、道具を選ぶ必要はあります。例えば文字列処理に perl を使い、漢字変換に >nkf を使い、メイルの送出に sendmail を使うことにすれば簡単でしょう。 > >ご健闘を祈ります。 > > >と、これだけでは、あまりに不親切ですか。(^^;; >もしかすると、これを読んでいる方の中に興味を覚えた人もいるかも知れませんので、 >簡単に道筋を書いておきましょうか。 > >CGI に渡された引数から本文を取り出すのは良いですね。漢字は URL encode されて >渡されてきますから、まず、元の文章に戻します。$_ に本文が入っているなら、 > >tr/+/ /; >s/%([a-f0-9]{2})/pack("C", hex($1))/ieg; > >だけで終わりです。 > >出来た本文の漢字コードはなんだか分かりませんから、インターネットメイルで送る >ためには JIS コードにしてやる必要があります。nkf に与えると同時にsendmailで >送ってしまえば簡単です。 > >open(OUTPUT, "| $nkf | $sendmail -n -t") || (エラー処理をする) >print OUTPUT <<"EOL"; >From: $from_addr >To: $to_addr >Errors-To: $admin_addr >Subject: $subjest >Mime-Version: 1.0 >Content-Type: text/plain; charset=ISO-2022-JP >(他にも必要なヘッダを書く) > >$text >EOL >close(OUTPUT); > >もちろん変数にはそれなりの値を設定してから使うことは言うまでもありません。 >メイルアドレスもあらかじめチェックして、おかしな値だったらエラーにする必要も >ありますし、いわゆる半角かなを使われた時のために、nkf のヴァージョンは >新しいものを使って、半角かなを全角かなに変換するモードを使う、等など、 >実際のスクリプトとして使うときには、いろいろ注意するところがあります。
ホームペーヂに戻る
nir@mvg.biglobe.ne.jp
Last Update: 2 December 1999