![]() |
| カレッヂ |
質問者 とも
投稿日 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裏技 |