フォーム・メールに書かれたmailアドレスに自動送信したい

[上に] [前に] [次に]
ウロウロ [E-Mail] 2000/06/07(水) 08:23:44

「フォーム・メールに書かれたmailアドレスに自動送信したい」です。
長文になってしまいました。m(_)m

この表題このラウンジでいいのか、更にトホホさんのシステムがこの仕組みを
実現しているのでトホホさんに聞いたほうがいいような・・

一種の紹介業務のための商用HPを作りつつあります。
フォーム・メールは必要事項の記載を誘導出来るので
便利ですが、mailアドレスの不確実性が欠点です。

不注意によるmailアドレスの誤記、悪質な他人アドレスの書き込みです。
この対策として、まず、本人確認の為、フォーム・メールに書かれたmailアド
レスに送信しょうと思っています。
本人と確認できれば、次のアクションをとります。

で、本人確認のためのmail送信の手作業は煩雑なので、何とか「フォーム・メ
ールに書かれたmailアドレスに自動送信」したいのです。

当方の環境は、レンタルサーバ(共用サーバ)を借りており
telnet・CGI・SSI・.httaccess etc大体のことは出来ます。
しかしroot権限はないので、プログラムのInstallは出来ません。
OSはバージョンはRedHat4.2、KernelはKernel2.0.36です。
WWWプログラム はApacheHTTPサーバです。
バージョンはApache 1.2.5になります。

フォーム・メールは
「ネット・サーフ・レスキュー」さんの「webform.cgi」を使っています。
http://www.rescue.ne.jp/cgi-rescue/cgi?webform

現在ところ、フォーム・メールからの情報の受け取りは
.redirectで自分のmailに転送しています。


=======以下はその内容です(一部分編集してあります)=======
--- ここから ---

あなたが希望するメンバーNO = 12345-23156478
お名前 = 山田 太郎
住所 = 千葉県市川市・・
第1希望の手段 = e-mail
第2希望の手段 =
第1希望 = abc@abc.com
第2希望 =
年齢 = 41〜50
性別 = 男
comment = 何もなし

--- ここまで ---
----------------------------------------
Processed         : 6/07 WED 07:51
Server-Name       : www.xxxxx.com
Server-Protocol   : HTTP/1.0
Server-Port       : 80
Gateway-Interface : CGI/1.1
Request-Method    : POST
Script-Name       : /cgi-xxxxx/webform.cgi
HTTP-Referer      : http://www.xxxxx.com/form/wab_mail.htm
HTTP-User-Agent   : Mozilla/4.7 [ja] (Win98; I)
Remote-host       : ichikawa1-204.teleway.ne.jp
Remote-Addr       : xxxxxxx
----------------------------------------
========== ここまで============================

自動返信は、第1希望 = abc@abc.comのアドレスに定型文書を付けて送りたい
のです。
更にあて先不明であれば、その情報も知りたいです。

このラウンジで実行されているのとほぼ同じ事です
トホホさのwww情報は素晴らしく当然ここものぞいたのですが
流石に、フォーム・メールに書かれたmailアドレスに自動送信の情報は
upされていません。

他に必要な情報はありますか?
面倒なお願いですが、どなたか教えていただければ、幸いです。m(_)m

Fuji.♪ [E-Mail] [HomePage] 2000/06/07(水) 10:53:20
フォームメールに拘るから例が見つからないのではないでしょうか?まぁ、入力されたE-mailアドレスへ自動的に返信を送るCGIスクリプトは存在しているのを見たことはありますが。(レスキューさんにもあったような)
CGIスクリプトでメールを送る処理を見て、そのメールの送り先を入力されたメールアドレスにするような形に書き換えてやれば良いだけでしょう。

なお、当然のことですがそのまま流すと容易にセキュリティホールとなるので、せめてメールアドレスの体裁を持っている文字列だけを流すようにしましょう。(この位なら、gooでもInfoSeekでもいいので検索を掛ければいくらでも見つかります)

ウロウロ 2000/06/09(金) 06:48:11
Fuji.♪さんどうも

>フォームメールに拘るから例が見つからないのではないでしょうか?
>まぁ、入力されたE-mailアドレスへ自動的に返信を送るCGIスクリプトは存
>在しているのを見たことはありますが。
>(レスキューさんにもあったような)
          ↓ありました
http://www.rescue.7777.net/tm/join.html
(ただ、これの設置は公開していないような・・)

>CGIスクリプトでメールを送る処理を見て、
>そのメールの送り先を入力されたメールアドレスにするような形に
>書き換えてやれば良いだけでしょう。

御意
いずれにしても、Perlの勉強途中なもので、これから引き続きやらなければ・・

がんばってね 2000/06/09(金) 10:55:48
まず必要なのは、
1:sendmailの場所を知っておく事。
2:漢字コードの設定。
3:メールの本文
です。
レスキューさんのCGIソースを見てないのでどういった処理をしている
のかわかりませんが、こんな感じでいかがでしょうか?

# 日本語使うので必要です。
require 'jcode.pl';

# 漢字コードはSJIS、sendmailの場所はプロバイダさんに聞いてね。
# サブルーチンは下に書いてあります。
$kanjicode = 'sjis';
$sendmail = '/usr/lib/sendmail';
&init_form($kanjicode);

# 送信者(あなたのメールアドレスかな?)のメルアド。
$webmaster = 'test@test.co.jp';

    if (open(MAIL, "|$sendmail -f $form{'ここには前のページで入力してもらった所のNAMEを入れてね'} -t")) {
        $msg = "To: $form{'同上'}\n";
        $msg .= "From: $webmaster\n";
        $msg .= 'Subject: なんかつけてね'."\n";
        $msg .= "ここに本文を書いてね";
        &jcode'convert(*msg, 'jis');
        print MAIL $msg;
        close(MAIL);
    }

sub init_form {
    local($query, @assocarray, $assoc, $property, $value, $charcode, $method);
    $charcode = $_[0];
    $method = $ENV{'REQUEST_METHOD'};
    $method =~ tr/A-Z/a-z/;
    if ($method eq 'post') {
        read(STDIN, $query, $ENV{'CONTENT_LENGTH'});
    } else {
        $query = $ENV{'QUERY_STRING'};
    }

    @assocarray = split(/&/, $query);
    foreach $assoc (@assocarray) {
        ($property, $value) = split(/=/, $assoc);
        $value =~ tr/+/ /;
        $value =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("C", hex($1))/eg;
        &jcode'convert(*value, $charcode);
        if ($form{$property}) {
            $form{$property} .= ':' . $value;
        } else {
            $form{$property} = $value;
        }
    }
}

ウロウロ 2000/06/11(日) 09:01:37

がんばってね さん 丁寧なレクチャーm(_)m

何となく、様子がわかって来ました。
が、どうせやるなら、Perlを本格的に勉強したい。
で、8月頃力を入れて(遅いんだな〜)やることにしました。

それまで、解決マークはお預けにします。
何かあったら、またここでお聞きします。
有難う御座いました。

[上に] [前に] [次に]