CGI-BBS > 情報収集 > フォームメール > 利用者が任意の送信先を指定できるようにするには?


カレッヂ
カレッヂ


質問者 とも  投稿日 2004/5/17(月) 22:18:52
CGIのメール送信プログラムで、利用者が任意の送信先を指定できるプログラムを
提供しているサイトはないですか?
以下のような感じです。

利用者がテキストフィールドにメールアドレスを入力する。
↓↓↓
利用者が送信ボタンを押す。
↓↓↓
利用者が入力したメールアドレス宛てに、
あらかじめ用意した固定メッセージが自動送信される。

また、上記内容の実現方法をご存知の方、教えて頂けると助かります。

プロバイダ参照:
サーバのOS:(未選択)
パソコンのOS:(未選択)
エディタ:
FTPソフト:
サーバ移転:していない
改造:(未選択)
CGI習熟度:(未選択)

回答者 papa  [削除]  投稿日 2004/5/26(水) 19:02:38
レスキューさんの、WebFORM v4.0をつかって簡単にできますよ。

先ず、webform.cgiの初期設定部分の
#■日本語コード変換ライブラリ
require '../jcode.pl'; の次あたりに

#★ メールsubject の文字化け対策
require './mimew.pl';

mimew.plはどこかにあったはずです。ダウンロードして用意してください。
次に

#■処理画面のボディ設定の次あたりに

#●電子メールに添付されるヘッダー部分
$hedder = <<'EOF';
このEOFとEOFの間に固定メッセージを記入します
EOF


次にsub sendmailを以下のように変更します。

sub sendmail {

# subject の文字化け対策に mimew.pl のサブルーチン mimeencode を呼び出して処理
    $enc_sub = &mimeencode($subject);

	if (!open(OUT,"| $sendmail -t")) { &error('システム異常','申し訳ありませんが何らかの原因で処理できません.'); }
    print OUT "X-Mailer: WebFORM v4.0 by www.rescue.ne.jp\n";
    print OUT "Subject: $enc_sub\n";
    print OUT "From: $mailto\n";
    print OUT "To: $email\n";
    print OUT "Content-Transfer-Encoding: 7bit\n";
    print OUT "Content-Type: text/plain\; charset=\"ISO-2022-JP\"\n\n\n";
	&jis("+----------------------------------------------------------+"); print OUT "$msg\n";

	$count = @DATA_N;
	foreach (0..$count-1) {

		if ($DATA_V[$_] =~ /\n/) { &jis("$DATA_N[$_] =\n\n$DATA_V[$_]\n"); print OUT "$msg\n"; }
		else { &jis("$DATA_N[$_] = $DATA_V[$_]"); print OUT "$msg\n"; }
	}

	&jis("+----------------------------------------------------------+"); print OUT "\n$msg\n\n";

        &jis($sign); print OUT "$msg\n\n";
        close(OUT);

これで、フォームに記入されたアドレスに対してメールが送信される筈です。
また、フォームに記入された他の部分の次に、$hedderで設定した固定メッセージが
表示されます。メールの差出人は常に$mailtoで設定したアドレスになります。
確認していませんが、多分、これで大丈夫だと思います。
質問者 とも  [削除]  投稿日 2004/5/27(木) 10:02:38
papaさん、丁寧なご説明ありがとうございました。

しかしながら、ここで問題が。。。

どうやら、私が使用しているホスティングのサーバーがWin系らしく、
UNIXコマンド(sendmail)が使えないそうです。

なので、UNIXコマンド(sendmail)を使わずして、
実現できる方法を探しているところですが、いまだ解決せずです。

もし、助言等頂けるようでしたら、宜しくお願いします。

返信(回答)する

 


Web裏技