カレッヂ |
質問者 とも
投稿日 2004/5/17(月) 22:18:52
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裏技 |