記事No | : 15824 |
投稿日 | : 2018/03/19(Mon) 11:53:06 |
タイトル | : メール件名の外部指定 |
ID情報 | : tyuuzi |
投稿者 | : yano |
URL | : http://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 |
URL | : http://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');
を挿入してみて下さい。