KENT-WEB サポートコーナー 過去ログ [ 0167 ]


記事No: 11944
投稿日: 2013/06/04(Tue) 15:31:18
タイトル自動返信メールの=を消して別の文字に変更したい
ID情報: diveinto
投稿者: むんく
URLhttp://www.a.com/contact/postmail.cgi

お世話になります。
POSTMAILのUTF-8バージョンを設置しました。
自動返信メールですが、そのまま使用すると

【送信内容】
お名前 = ●●●
お名前(フリガナ) = ●●●
メールアドレス = ●●●@●●●.com
お電話番号 = ●●●
お問合せ内容 = ●●●

のように、項目=回答 のレイアウトになります。
この=を消して

【お名前】
●●●

【メールアドレス】
●●●@●●●.com

のようなレイアウトに変更したいのですが、エラーが出てうまくいきません。
過去ログも探しましたが同じものが見つかりませんでした。
どこを変更すると、=を消して文言の差し替えができますでしょうか?
どなたかご教授ください。
よろしくお願い致します。

修正箇所はpostmail.cgiのこの辺でしょうか?





#-----------------------------------------------------------
# 送信実行
#-----------------------------------------------------------
sub send_mail {
# 送信内容チェック
&error("データを取得できません") if (@$key == 0);

# セッションチェック
&check_ses;

# 連続送信チェック
&check_post('send');

# メール書式チェック
&check_email($$in{email},'send') if ($$in{email});

# 時間取得
my ($date1,$date2) = &get_time;

# ブラウザ情報
my $agent = $ENV{HTTP_USER_AGENT};
$agent =~ s/[<>&"'()+;]//g;

# 本文テンプレ読み込み
my $tbody;
open(IN,"$cf{tmpldir}/mail.txt") or &error("open err: mail.txt");
my $tbody = join('', <IN>);
close(IN);

# 改行
$tbody =~ s/\r\n/\n/g;
$tbody =~ s/\r/\n/g;

# テンプレ変数変換
$tbody =~ s/!date!/$date1/g;
$tbody =~ s/!agent!/$agent/g;
$tbody =~ s/!host!/$host/g;
$tbody = $j->set(\$tbody,'utf8')->jis;

# 自動返信ありのとき
my $resbody;
if ($cf{auto_res}) {

# テンプレ
open(IN,"$cf{tmpldir}/reply.txt") or &error("open err: reply.txt");
$resbody = join('', <IN>);
close(IN);

# 改行
$resbody =~ s/\r\n/\n/g;
$resbody =~ s/\r/\n/g;

# 変数変換
$resbody =~ s/!date!/$date1/g;
$resbody = $j->set(\$resbody,'utf8')->jis;
}

# 本文キーを展開
my ($bef,$mbody,$log);
foreach (@$key) {

# 本文に含めない部分を排除
next if ($_ eq "mode");
next if ($_ eq "need");
next if ($_ eq "match");
next if ($_ eq "ses_id");
next if ($_ eq "subject");
next if ($$in{match} && $_ eq $match2);
next if ($bef eq $_);

# B64デコード
$$in{$_} = b64_decode($$in{$_});

# name値の名前置換
my $key_name = defined($cf{replace}->{$_}) ? $cf{replace}->{$_} : $_;

# エスケープ
$$in{$_} =~ s/\.\n/\. \n/g;

# 添付ファイル風の文字列拒否
$$in{$_} =~ s/Content-Disposition:\s*attachment;.*//ig;
$$in{$_} =~ s/Content-Transfer-Encoding:.*//ig;
$$in{$_} =~ s/Content-Type:\s*multipart\/mixed;\s*boundary=.*//ig;

# 改行復元
$$in{$_} =~ s/\t/\n/g;

# HTMLタグ復元
$$in{$_} =~ s/&lt;/</g;
$$in{$_} =~ s/&gt;/>/g;
$$in{$_} =~ s/&quot;/"/g;
$$in{$_} =~ s/&#39;/'/g;
$$in{$_} =~ s/&amp;/&/g;

# 本文内容
my $tmp;
if ($$in{$_} =~ /\n/) {
$tmp = "$key_name = \n$$in{$_}\n";
} else {
$tmp = "$key_name = $$in{$_}\n";
}
$mbody .= $tmp;

$bef = $_;
}
# コード変換
$mbody = $j->set(\$mbody,'utf8')->jis;

# 本文テンプレ内の変数を置き換え
$tbody =~ s/!message!/$mbody/;

# 返信テンプレ内の変数を置き換え
$resbody =~ s/!message!/$mbody/ if ($cf{auto_res});

# メールアドレスがない場合は送信先に置き換え
my $email = $$in{email} eq '' ? $cf{mailto} : $$in{email};

# MIMEエンコード
my $sub_me = $$in{subject} ne '' && defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : $cf{subject};
$sub_me = $j->set($sub_me,'utf8')->mime_encode;
my $from;
if ($$in{name}) {
$$in{name} =~ s/[\r\n]//g;
$from = $j->set("\"$$in{name}\" <$email>",'utf8')->mime_encode;
} else {
$from = $email;
}

# --- 送信内容フォーマット開始
# ヘッダー
my $body = "To: $cf{mailto}\n";
$body .= "From: $from\n";
$body .= "Subject: $sub_me\n";
$body .= "MIME-Version: 1.0\n";
$body .= "Date: $date2\n";
$body .= "Content-type: text/plain; charset=iso-2022-jp\n";
$body .= "Content-Transfer-Encoding: 7bit\n";
$body .= "X-Mailer: $cf{version}\n\n";
$body .= "$tbody\n";

# 返信内容フォーマット
my $res_body;
if ($cf{auto_res}) {

# 件名MIMEエンコード
my $re_sub = Jcode->new($cf{sub_reply},'utf8')->mime_encode;

$res_body .= "To: $email\n";
$res_body .= "From: $cf{mailto}\n";
$res_body .= "Subject: $re_sub\n";
$res_body .= "MIME-Version: 1.0\n";
$res_body .= "Content-type: text/plain; charset=iso-2022-jp\n";
$res_body .= "Content-Transfer-Encoding: 7bit\n";
$res_body .= "Date: $date2\n";
$res_body .= "X-Mailer: $cf{version}\n\n";
$res_body .= "$resbody\n";
}

# senmdailコマンド
my $scmd = $cf{send_fcmd} ? "$cf{sendmail} -t -i -f $email" : "$cf{sendmail} -t -i";

# 本文送信
open(MAIL,"| $scmd") or &error("メール送信失敗");
print MAIL "$body\n";
close(MAIL);

# 返信送信
if ($cf{auto_res}) {
my $scmd = $cf{send_fcmd} ? "$cf{sendmail} -t -i -f $cf{mailto}" : "$cf{sendmail} -t -i";

open(MAIL,"| $scmd") or &error("メール送信失敗");
print MAIL "$res_body\n";
close(MAIL);
}

# リロード
if ($cf{reload}) {
if ($ENV{PERLXS} eq "PerlIS") {
print "HTTP/1.0 302 Temporary Redirection\r\n";
print "Content-type: text/html\n";
}
print "Location: $cf{back}\n\n";
exit;

# 完了メッセージ
} else {
open(IN,"$cf{tmpldir}/thx.html") or &error("open err: thx.html");
my $tmpl = join('', <IN>);
close(IN);

# 表示
print "Content-type: text/html; charset=utf-8\n\n";
$tmpl =~ s/!back!/$cf{back}/g;
&footer($tmpl);
}
}


記事No: 11945
投稿日: 2013/06/04(Tue) 18:53:30
タイトルRe: 自動返信メールの=を消して別の文字に変更したい
ID情報: kudocgi
投稿者: KUDO CGI WORKS
URLhttp://www.kudocgiworks.net

288行目

# 本文内容
my $tmp;
if ($$in{$_} =~ /\n/) {
$tmp = "$key_name = \n$$in{$_}\n";
} else {
$tmp = "$key_name = $$in{$_}\n";
}



# 本文内容
my $tmp;
$tmp = "【$key_name】\n$$in{$_}\n\n";

のようにしてみてください。
参考になれば幸いです。

┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏┏

┏━━━┓各種CGIスクリプト設置代行・カスタマイズ
┃\_/┃KUDO CGI WORKS
┗━━━┛
┏┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌┌
┏┌
┏┌ URL http://www.kudocgiworks.net
┏┌ E-mail info@kudocgiworks.net
┏┌
┏┌ 最新情報・お得情報・便利情報を発信中!!
┏┌ Facebook http://www.facebook.com/kudocgiworks
┏┌ ★★★facebookのアカウントをお持ちの方は
┏┌ ★★★是非『いいね』のクリックをお願いします!









記事No: 11952
投稿日: 2013/06/05(Wed) 10:32:56
タイトルRe^2: 自動返信メールの=を消して別の文字に変更したい
ID情報: diveinto
投稿者: むんく

先程テストしたところ思い通りのレイアウトが出来ました!
ご丁寧に教えていただき本当にありがとうございます。


[検索ページ] [掲示板]