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


記事No: 13861
投稿日: 2015/03/17(Tue) 13:29:43
タイトルCaptcha Mailのreplyで
ID情報: pcsc
投稿者: たにやん
URLhttp://hogehoge.com

Captcha Mailのreplyで、返信メールの冒頭に
○○ 様
と言った表示をしたく、過去ログを調べ色々試しましたが良い結果になりません。
reply.txtの中に
!name!様と書くと、ここだけが文字化けしたメールとなります。
具体的には、
「山田」→「e5b1b1e794b0」
「YAMADA」→「59414d414441」
となります。
どこを修正・変更すれば良いのでしょうか?
Captcha Mail(UTF-8版)で、
基本的に、「captmail.cgi」は変更していません。

「form.html」は、
<input type="hidden" name="need" value="name フリガナ ご住所 email お電話番号" />
<input type="hidden" name="match" value="email email2" />
に準じ設定し、

「init.cgi」は、以下のような内容となっています。

#===========================================================
# ▼基本設定
#===========================================================

# このプログラムの文字コード (utf8 or sjis)
# utf8 : UTF-8
# sjis : Shift-JIS
$cf{kcode} = 'utf8';

# 送信先メールアドレス
$cf{mailto} = '123@hogehoge.com';

# sendmailのパス【サーバパス】
# → プロバイダの指定を確認のこと
$cf{sendmail} = '/usr/sbin/sendmail';

# sendmailへの-fコマンド(プロバイダの仕様確認)
# 0=no 1=yes
$cf{send_fcmd} = 0;

# 文字コード自動判別(0=no 1=yes)
# → フォームの文字コード判別を行う場合
# → フォームがShift_JISの場合は「0」で概ねOK
$cf{conv_code} = 0;

# 文字コード変換モジュール
# 1 : Jcode
# 2 : Unicode::Japanese
$cf{conv_pm} = 2;

# フォームのname値の置き換えをする場合
# → 英字のname値を日本語に自動的に置き換えます。
# 例: 「email = xx@xx.xx」→「メールアドレス = xx@xx.xx」
$cf{replace} = {
'name' => 'お名前',
'email' => 'メールアドレス',

};

# base64変換方式
# 1 : base64.pl(ライブラリ方式)
# 2 : MIME::Base64(モジュール方式)
$cf{b64_type} = 2;

# 最大受信サイズ(Byte)
# → 例 : 102400Bytes = 100KB
$cf{maxdata} = 102400;

# 送信者へのメール返信
# 0=no 1=yes
$cf{auto_res} = 1;

# メールタイトル
$cf{subject} = 'チケット購入メール';

# 返信向けメールタイトル
$cf{sub_reply} = 'チケット購入を受付ました';

# 本体プログラム【URLパス】
$cf{mail_cgi} = './captmail.cgi';

# ログファイル【サーバパス】
$cf{logfile} = './data/log.cgi';

# テンプレートディレクトリ【サーバパス】
$cf{tmpldir} = './tmpl';

# 一時ディレクトリ【サーバパス】
$cf{tmpdir} = './data/tmp';

# 送信後の形態
# 0 : 完了メッセージを出す.
# 1 : 戻り先 ($back) へ自動ジャンプさせる.
$cf{reload} = 0;

# 送信後の戻り先【URLパス】
# → http://から記述する
$cf{back} = '';

# フォームのname値の正当性をチェックする
# → 半角文字は英数字、アンダーバー、ハイフンはOK。全角は全てOK
# 0=no 1=yes
$cf{check_key} = 1;

# 同一IPアドレスからの連続送信制御
# → 許可する間隔を秒数で指定(0にするとこの機能は無効)
$cf{block_post} = 60;

# 送信は method=POST 限定 (セキュリティ対策)
# 0=no 1=yes
$cf{postonly} = 1;

# ホスト名取得方法
# 0 : gethostbyaddr関数を使わない
# 1 : gethostbyaddr関数を使う
$cf{gethostbyaddr} = 0;

# アクセス制限(複数あれば半角スペースで区切る、アスタリスク可)
# → 拒否ホスト名又はIPアドレスの記述例
# (前方一致は先頭に ^ をつける)【例】^210.12.345.*
# (後方一致は末尾に $ をつける)【例】*.anonymizer.com$
$cf{denyhost} = '';

# 禁止ワード
# → 投稿時禁止するワードをコンマで区切る
$cf{no_wd} = '';

# -------------------------------------------------------------- #
# [ 以下は「画像認証機能」機能(スパム対策)を使用する場合の設定 ]
#
# 画像認証機能の使用
# 1 : ライブラリ版(pngren.pl)
# 2 : モジュール版(GD::SecurityImage + Image::Magick)→ Image::Magick必須
$cf{use_captcha} = 1;

# 認証用画像生成ファイル【URLパス】
$cf{captcha_cgi} = './captcha.cgi';

# 画像認証プログラム【サーバパス】
$cf{captcha_pl} = './lib/captcha.pl';
$cf{captsec_pl} = './lib/captsec.pl';
$cf{pngren_pl} = './lib/pngren.pl';

# 画像認証機能用暗号化キー(暗号化/復号化をするためのキー)
# → 適当に変更してください。
$cf{captcha_key} = 'captcha_mailer';

# 投稿キー許容時間(分単位)
# → 投稿フォーム表示後、送信ボタンが押されるまでの可能時間。
$cf{cap_time} = 30;

# 投稿キーの文字数
# ライブラリ版 : 4〜8文字で設定
# モジュール版 : 6〜8文字で設定
$cf{cap_len} = 4;

# 画像/フォント格納ディレクトリ【サーバパス】
$cf{bin_dir} = './lib/bin';

# [ライブラリ版] 画像ファイル [ ファイル名のみ ]
$cf{si_png} = "stamp.png";

# [モジュール版] 画像フォント [ ファイル名のみ ]
$cf{font_ttl} = "tempest.ttf";

#===========================================================
# ▲設定完了
#===========================================================


以上、御教示いただきたく宜しくお願い致します。

なお、まだアップロードせず内部環境でのテストですので、URLはダミーです。


記事No: 13862
投稿日: 2015/03/17(Tue) 19:18:23
タイトルRe: Captcha Mailのreplyで
ID情報: hirayama
投稿者: hirayama

captmail.cgiは変更していないと言うことですが、
reply.txtの!name!を$$in{name}に変換する処理は追加しているということですね。
とりあえずその部分を消して、
captmail.cgi のsub send_mail 内にある

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

の行の近くに

my $name_jis = conv_jis($$in{name});
$reply =~ s/!name!/$name_jis/ if ($cf{auto_res});

を追加すればいいと思います。


記事No: 13901
投稿日: 2015/04/05(Sun) 12:23:33
タイトルRe: Captcha Mailのreplyで
ID情報: pcsc
投稿者: たにやん

ありがとうございました。

助かりました。

m(__)m

> Captcha Mailのreplyで、返信メールの冒頭に
> ○○ 様
> と言った表示をしたく、過去ログを調べ色々試しましたが良い結果になりません。
> reply.txtの中に
> !name!様と書くと、ここだけが文字化けしたメールとなります。
> 具体的には、
> 「山田」→「e5b1b1e794b0」
> 「YAMADA」→「59414d414441」
> となります。
> どこを修正・変更すれば良いのでしょうか?
> Captcha Mail(UTF-8版)で、
> 基本的に、「captmail.cgi」は変更していません。
>
> 「form.html」は、
> <input type="hidden" name="need" value="name フリガナ ご住所 email お電話番号" />
> <input type="hidden" name="match" value="email email2" />
> に準じ設定し、
>
> 「init.cgi」は、以下のような内容となっています。
>
> #===========================================================
> # ▼基本設定
> #===========================================================
>
> # このプログラムの文字コード (utf8 or sjis)
> # utf8 : UTF-8
> # sjis : Shift-JIS
> $cf{kcode} = 'utf8';
>
> # 送信先メールアドレス
> $cf{mailto} = '123@hogehoge.com';
>
> # sendmailのパス【サーバパス】
> # → プロバイダの指定を確認のこと
> $cf{sendmail} = '/usr/sbin/sendmail';
>
> # sendmailへの-fコマンド(プロバイダの仕様確認)
> # 0=no 1=yes
> $cf{send_fcmd} = 0;
>
> # 文字コード自動判別(0=no 1=yes)
> # → フォームの文字コード判別を行う場合
> # → フォームがShift_JISの場合は「0」で概ねOK
> $cf{conv_code} = 0;
>
> # 文字コード変換モジュール
> # 1 : Jcode
> # 2 : Unicode::Japanese
> $cf{conv_pm} = 2;
>
> # フォームのname値の置き換えをする場合
> # → 英字のname値を日本語に自動的に置き換えます。
> # 例: 「email = xx@xx.xx」→「メールアドレス = xx@xx.xx」
> $cf{replace} = {
> 'name' => 'お名前',
> 'email' => 'メールアドレス',
>
> };
>
> # base64変換方式
> # 1 : base64.pl(ライブラリ方式)
> # 2 : MIME::Base64(モジュール方式)
> $cf{b64_type} = 2;
>
> # 最大受信サイズ(Byte)
> # → 例 : 102400Bytes = 100KB
> $cf{maxdata} = 102400;
>
> # 送信者へのメール返信
> # 0=no 1=yes
> $cf{auto_res} = 1;
>
> # メールタイトル
> $cf{subject} = 'チケット購入メール';
>
> # 返信向けメールタイトル
> $cf{sub_reply} = 'チケット購入を受付ました';
>
> # 本体プログラム【URLパス】
> $cf{mail_cgi} = './captmail.cgi';
>
> # ログファイル【サーバパス】
> $cf{logfile} = './data/log.cgi';
>
> # テンプレートディレクトリ【サーバパス】
> $cf{tmpldir} = './tmpl';
>
> # 一時ディレクトリ【サーバパス】
> $cf{tmpdir} = './data/tmp';
>
> # 送信後の形態
> # 0 : 完了メッセージを出す.
> # 1 : 戻り先 ($back) へ自動ジャンプさせる.
> $cf{reload} = 0;
>
> # 送信後の戻り先【URLパス】
> # → http://から記述する
> $cf{back} = '';
>
> # フォームのname値の正当性をチェックする
> # → 半角文字は英数字、アンダーバー、ハイフンはOK。全角は全てOK
> # 0=no 1=yes
> $cf{check_key} = 1;
>
> # 同一IPアドレスからの連続送信制御
> # → 許可する間隔を秒数で指定(0にするとこの機能は無効)
> $cf{block_post} = 60;
>
> # 送信は method=POST 限定 (セキュリティ対策)
> # 0=no 1=yes
> $cf{postonly} = 1;
>
> # ホスト名取得方法
> # 0 : gethostbyaddr関数を使わない
> # 1 : gethostbyaddr関数を使う
> $cf{gethostbyaddr} = 0;
>
> # アクセス制限(複数あれば半角スペースで区切る、アスタリスク可)
> # → 拒否ホスト名又はIPアドレスの記述例
> # (前方一致は先頭に ^ をつける)【例】^210.12.345.*
> # (後方一致は末尾に $ をつける)【例】*.anonymizer.com$
> $cf{denyhost} = '';
>
> # 禁止ワード
> # → 投稿時禁止するワードをコンマで区切る
> $cf{no_wd} = '';
>
> # -------------------------------------------------------------- #
> # [ 以下は「画像認証機能」機能(スパム対策)を使用する場合の設定 ]
> #
> # 画像認証機能の使用
> # 1 : ライブラリ版(pngren.pl)
> # 2 : モジュール版(GD::SecurityImage + Image::Magick)→ Image::Magick必須
> $cf{use_captcha} = 1;
>
> # 認証用画像生成ファイル【URLパス】
> $cf{captcha_cgi} = './captcha.cgi';
>
> # 画像認証プログラム【サーバパス】
> $cf{captcha_pl} = './lib/captcha.pl';
> $cf{captsec_pl} = './lib/captsec.pl';
> $cf{pngren_pl} = './lib/pngren.pl';
>
> # 画像認証機能用暗号化キー(暗号化/復号化をするためのキー)
> # → 適当に変更してください。
> $cf{captcha_key} = 'captcha_mailer';
>
> # 投稿キー許容時間(分単位)
> # → 投稿フォーム表示後、送信ボタンが押されるまでの可能時間。
> $cf{cap_time} = 30;
>
> # 投稿キーの文字数
> # ライブラリ版 : 4〜8文字で設定
> # モジュール版 : 6〜8文字で設定
> $cf{cap_len} = 4;
>
> # 画像/フォント格納ディレクトリ【サーバパス】
> $cf{bin_dir} = './lib/bin';
>
> # [ライブラリ版] 画像ファイル [ ファイル名のみ ]
> $cf{si_png} = "stamp.png";
>
> # [モジュール版] 画像フォント [ ファイル名のみ ]
> $cf{font_ttl} = "tempest.ttf";
>
> #===========================================================
> # ▲設定完了
> #===========================================================
>
>
> 以上、御教示いただきたく宜しくお願い致します。
>
> なお、まだアップロードせず内部環境でのテストですので、URLはダミーです。
>


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