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


記事No: 15824
投稿日: 2018/03/19(Mon) 11:53:06
タイトルメール件名の外部指定
ID情報: tyuuzi
投稿者: yano
URLhttp://153.122.87.155/inquiry_new/

clipmail v6.0で質問させていただきます。

メール件名の外部指定を「チェックボックス」or「ラジオボタン」で使用した場合、以下の点を教えて頂けないでしょうか

・<input type="checkbox" name="subject" value="1" />
 <input type="checkbox" name="subject" value="2" />
 を使った場合、2つチェックしたときはどうなるのでしょうか
 「12 =>」「1 2 =>」「1 2 =>」どれもダメでした。


・「<input type="checkbox" name="subject" value="1" />」を使った場合、件名は振り分けられますが、
 確認画面やメール本文に選択した内容「お引越し」「リサイクル」を
 表示することは出来るのでしょうか


よろしくお願いいたします。


記事No: 15825
投稿日: 2018/03/19(Mon) 13:23:16
タイトルRe: メール件名の外部指定
ID情報: teketen
投稿者: てけてん

> メール件名の外部指定を「チェックボックス」or「ラジオボタン」で使用した場合、以下の点を教えて頂けないでしょうか
>
> ・<input type="checkbox" name="subject" value="1" />
>  <input type="checkbox" name="subject" value="2" />
>  を使った場合、2つチェックしたときはどうなるのでしょうか
>  「12 =>」「1 2 =>」「1 2 =>」どれもダメでした。

$cf{multi_sub} = {
1 => 'お引越し',
2 => 'リサイクル',
'1 2' => 'お引越しとリサイクル',
};

のようにして下さい。
値を半角の'で括り、1と2の間は半角のスペースです。

> 確認画面やメール本文に選択した内容「お引越し」「リサイクル」を
>  表示することは出来るのでしょうか

テストエディタで、clipmail.cgiを開いて以下の改造をして下さい。

my ($key,$need,$in) = parse_form();

の次の行に

$$in{details1} = defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : '';

を挿入して下さい。
$$in{details1}の部分のdetails1は、始めのご質問で、

> ●管理者に届くメール(例)
> -----------------------
> 件名:【!details1!】!name_all!様よりお問い合わせがありました。
>
> 本文:
> 【!details1!】について

にて、件名にされていたものを使用しました。
他のname値が宜しければ、それに変更して下さい。
もしも、日本語(<input type="checkbox" name="問い合わせ">などname値が日本語表記)で明記される場合は、
$$in{'問い合わせ'}
のように、'で括って下さい。
例:$$in{'問い合わせ'} = defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : '';

こうすることで、エラー画面にもプレビュー画面にも表示することが出来ます。
勿論、メール本文にも。
$$in{details1}の場合、エラー画面、プレビュー画面、メール本文には、details1として表示されます。
メールのテンプレートへの記述及び、need(入力必須項目)でもdetails1として扱って下さい。
init.cgiで
$cf{replace} = {
'name' => 'お名前',
'email' => 'メールアドレス',
'comment' => 'コメント',
};
を設定する場合も、同様です。

以上です。


記事No: 15826
投稿日: 2018/03/19(Mon) 16:48:04
タイトルRe^2: メール件名の外部指定
ID情報: tyuuzi
投稿者: yano
URLhttp://153.122.87.155/inquiry_new/

> > メール件名の外部指定を「チェックボックス」or「ラジオボタン」で使用した場合、以下の点を教えて頂けないでしょうか
> >
> > ・<input type="checkbox" name="subject" value="1" />
> >  <input type="checkbox" name="subject" value="2" />
> >  を使った場合、2つチェックしたときはどうなるのでしょうか
> >  「12 =>」「1 2 =>」「1 2 =>」どれもダメでした。
>
> $cf{multi_sub} = {
> 1 => 'お引越し',
> 2 => 'リサイクル',
> '1 2' => 'お引越しとリサイクル',
> };
>
> のようにして下さい。
> 値を半角の'で括り、1と2の間は半角のスペースです。
>
> > 確認画面やメール本文に選択した内容「お引越し」「リサイクル」を
> >  表示することは出来るのでしょうか
>
> テストエディタで、clipmail.cgiを開いて以下の改造をして下さい。
>
> my ($key,$need,$in) = parse_form();
>
> の次の行に
>
> $$in{details1} = defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : '';
>
> を挿入して下さい。
> $$in{details1}の部分のdetails1は、始めのご質問で、
>
> > ●管理者に届くメール(例)
> > -----------------------
> > 件名:【!details1!】!name_all!様よりお問い合わせがありました。
> >
> > 本文:
> > 【!details1!】について
>
> にて、件名にされていたものを使用しました。
> 他のname値が宜しければ、それに変更して下さい。
> もしも、日本語(<input type="checkbox" name="問い合わせ">などname値が日本語表記)で明記される場合は、
> $$in{'問い合わせ'}
> のように、'で括って下さい。
> 例:$$in{'問い合わせ'} = defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : '';
>
> こうすることで、エラー画面にもプレビュー画面にも表示することが出来ます。
> 勿論、メール本文にも。
> $$in{details1}の場合、エラー画面、プレビュー画面、メール本文には、details1として表示されます。
> メールのテンプレートへの記述及び、need(入力必須項目)でもdetails1として扱って下さい。
> init.cgiで
> $cf{replace} = {
> 'name' => 'お名前',
> 'email' => 'メールアドレス',
> 'comment' => 'コメント',
> };
> を設定する場合も、同様です。
>
> 以上です。


てけてん様
ありがとうございます。実装ができました。

ですが1点気になる現象が起きましたのでご報告いたします。
チェックボックス2つともチェックした場合
 '1 2' => '【12】引越とリサイクル',
と設定しました。
すると
確認ページと件名には、【12】引越とリサイクル と表記され ←理想通り
本文だけ、【 】引越とリサイクル と表記されました。

【123456】引越とリサイクル にすると、本文だけ 【 4V】引越とリサイクル となりました。
【ABCDEFG】引越とリサイクル にすると、本文だけ 【???G】引越とリサイクル となりました。
ABCDEFG引越とリサイクル にすると、本文だけ ???G引越とリサイクル となりました。

半角が文字化けするようなので、使わないように設定したいと思います。
ご指導いただきありがとうございました。







記事No: 15827
投稿日: 2018/03/20(Tue) 14:16:43
タイトルRe^3: メール件名の外部指定
ID情報: teketen
投稿者: てけてん

> 確認ページと件名には、【12】引越とリサイクル と表記され ←理想通り
> 本文だけ、【 】引越とリサイクル と表記されました。

症状を確認出来ました。
デコードで失敗しているようです。
対処法としては、clipmail.cgiをテキストエディタで開き、

# hexデコード

を検索して下さい。
すると、

$$in{$_} = hex_decode($$in{$_});

が見つかりますので、その次の行に

$$in{$_} = defined($cf{multi_sub}->{$$in{subject}}) ? $cf{multi_sub}->{$$in{subject}} : '' if ($_ eq 'details1');

を挿入してみて下さい。


[検索ページ]