CGI-BBS > 情報収集 > フォームメール > フォームメールでメールの件名に名前などを入れたいんです。


カレッヂ
カレッヂ


質問者 nakamura  投稿日 2004/4/9(金) 16:37:40
フォームメールで送られてくるメールの件名に現在は "予約申込み" と
入ってくるのですが、その後にフォームで入力された名前・連番・日付けの
どれかひとつを入れたいんです。
よろしくお願いします。

#タイトル欄に入力がない場合のデフォルト値
$subject = "- order -";

#デコード
@pairs = split(/&/,$buffer);
foreach $pair (@pairs) {
    ($name,$value) = split(/=/,$pair);
    $value =~ tr/+/ /;
    $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
    $name =~ tr/+/ /;
    $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;
    &jcode'convert(*name,'sjis'); &jcode'convert(*value,'sjis');
    if ($value =~ /\r\n/) { $value =~ s/\r//g; }
    elsif ($value =~ /\r/) { $value =~ s/\r/\n/g; }
    if ($name eq "location") { $lct = $value; }
    elsif ($name eq "c_copy" && $value eq "on") { $cc = "on"; }
    elsif ($name eq "no_check" && $value eq "on") { $nocheck = "on"; }
    elsif ($name eq "space_check" && $value eq "on") { $spcheck = "on"; }
    elsif ($name eq "no_check") { ; }
    elsif ($name eq "ref_url") { $ref_url = $value; }
    elsif ($name eq "ref_name") { $ref_name = $value; }
    elsif ($name eq "subject" && $value ne "") { $subject = $value; }
    elsif ($name eq "subject") { ; }
    elsif ($name eq "ref_page") { $ref = $value; }
    elsif ($name eq "password") {
sub sendmail {
    if (!(open(OUT,"| $sendmail -t"))) { &error('システム異常','申し訳ありませんが何らかの原因で処理できません.'); }
    print OUT "X-Mailer: webform_rv v4.0 by www.rescue.ne.jp\n";
    print OUT "X-HTTP_REFERER: $ref\n";
    print OUT "Errors-To: $mailto\n";
    print OUT "To: $mailto\n";
    print OUT "From: $email\n";
    &jis("Subject: $subject"); print OUT "$msg\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\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";
    $host = $ENV{'REMOTE_HOST'};
    $addr = $ENV{'REMOTE_ADDR'};
    if ($host eq $addr) { $host = gethostbyaddr(pack('C4',split(/\./,$host)),2) || $addr; }
  
        print "Content-type: text/html\n\n";
            print "<html><head><title>$title</title></head>\n";
            print "$body\n";
        print "<H1>送信完了</H1>\n";
        print "ご記入されたものは<a href=\"mailto:$mailto\">$mailto</a>宛てに電子メールされました.<br>\n";
        print "Thank you for sending comments to $mailto .<p>\n";
        if ($ref_url ne '' && $ref_name ne '') { &jcode'convert(*ref_name,'sjis'); print "<h3>[<a href=\"$ref_url\" target=\"_top\">$ref_name</a>]</h3>"; }
        print "<p></body></html>\n";
    }
    exit;
}
sub cc {
    print "X-Processed: $date_now\n";
    print "X-HTTP_REFERER: $ref\n";
    print "X-HTTP-User-Agent: $ENV{'HTTP_USER_AGENT'}\n";
    print "X-Remote-host: $host \[$ENV{'REMOTE_ADDR'}\]\n";
    print "To: $mailto\n";
    print "Subject: $subject\n\n";

プロバイダ参照:
サーバのOS:不明
パソコンのOS:WinNT系
エディタ:EmEditor v3
FTPソフト:ホームページ・ビルダー
サーバ移転:していない
改造:していない
CGI習熟度:beginner

回答者 sim  [削除]  投稿日 2004/4/9(金) 20:00:54
    print OUT "X-Mailer: webform_rv v4.0 by www.rescue.ne.jp\n";
    print OUT "X-HTTP_REFERER: $ref\n";
    print OUT "Errors-To: $mailto\n";
    print OUT "To: $mailto\n";
    print OUT "From: $email\n";
    &jis("Subject: $subject"); print OUT "$msg\n";
この辺の手前にでも
$subject .= "名前とか";

と入れればよろしいかと思います。
質問者 nakamura  [削除]  投稿日 2004/4/10(土) 11:59:11
返事が送れましてすいませんでした。
日付けを入れるようにしました
これでどこまでメールを処理したかが分かるように
なりました。

ありがとうございました

if (!(open(OUT,"| $sendmail -t"))) { &error('システム異常','申し訳ありませんが何らかの原因で処理できません.'); }
 print OUT "X-Mailer: webform_rv v4.0 by www.rescue.ne.jp\n";
 print OUT "X-HTTP_REFERER: $ref\n";
 print OUT "Errors-To: $mailto\n";
 print OUT "To: $mailto\n";
 print OUT "From: $email\n";
 &jis("Subject: $subject$date_now"); print OUT "$msg\n";

このページは終了したので返信(回答)は書きこめません
 


Web裏技