記事No | : 11944 |
投稿日 | : 2013/06/04(Tue) 15:31:18 |
タイトル | : 自動返信メールの=を消して別の文字に変更したい |
ID情報 | : diveinto |
投稿者 | : むんく |
URL | : http://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/</</g;
$$in{$_} =~ s/>/>/g;
$$in{$_} =~ s/"/"/g;
$$in{$_} =~ s/'/'/g;
$$in{$_} =~ s/&/&/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 |
URL | : http://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 |
投稿者 | : むんく |
先程テストしたところ思い通りのレイアウトが出来ました!
ご丁寧に教えていただき本当にありがとうございます。