Responsive mailformで件名に入力された名前やメールアドレスを入れる


久々の技術系記事。すごい簡単な部分だけど、一応メモとして書きます。
Responsive mailformは最近使ってるから設置方法とかいつか記事にしたいところ。

Responsive mailformとは

https://www.1-firststep.com/archives/462
こちらをどうぞ。簡単に設置できるメールフォームです。

件名や本文のカスタマイズについて

件名及び本文はcomfig.phpに記述します。
25行目以降が、管理者に届くお知らせメールについて。
49行目以降が、入力した人に届く自動返信メールについて。
ここに入力された情報を、タイトルに入れたい方もいると思います。
その場合は各inputタグのnameから取得しましょう。

<dt>名前<span>Your Name</span></dt>
<dd class="required"><input type="text" id="name_1" name="name_1" value="" /> <input type="text" id="name_2" name="name_2" value="" /></dd>
$name1 = $_POST["name_1"];
$name2 = $_POST["name_2"];

初期メールフォームの場合はこちらで「名前」に入力されたテキストを取得できます。

あとは$rm_send_subjectにこの値を入れましょう。

$rm_send_subject = $name1.$name2.'様からお問い合わせがありました。';

簡単ですね。

メールアドレスを件名に入れたい場合も、メールアドレスのテキストボックスのname属性に書かれたものを$_POSTで取得し、入れるだけです。
以上!ではでは~

補足:class.mailform.phpを今回の件でいじるのは非推奨

class.mailform.phpにはinputで入力された情報をループ処理してメール本文に入れるPHPが記述されてます。
ここをいじってうまくやろうとしても基本的に難しいです。
というのも、私の試した限り、config.php→class.mailform.phpの順番に処理され、
かつclass.mailform.php内のfunctionも本文のものは件名のものよりも後に処理されているからです。
ここの処理の順番を変えるという話になると、ある程度慣れてないとまた新たな不具合を生んでしまうので、やめておくのがいいと思いました。

補足終わり。では~

「Responsive mailformで件名に入力された名前やメールアドレスを入れる」への1件のフィードバック

  1. $_POSTをそのまま件名に代入するとメールヘッダインジェクション脆弱性になり、迷惑メールを一斉送信する際の踏み台にされますよ。
    誰でも自由にそのサーバーから迷惑メールを送信でき、そのサーバーの管理者は被害者から損害賠償請求を受ける可能性もあります。

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。名前及びコメントは必須項目、メールアドレス及びサイトURLは任意です。