ネタにマジレスしてるんで、仕方ないからチラ見してみた。
このスレのダメな例の集大成みたいだな。

受け取った値の長さに制限を掛けて、巨大データを受け入れないようにする。
HTML側でもmaxlengthやtype="email"やrequiredを使うと気休めになるかも。
PHP側でも長さをチェックする。

filter_inputの使い方が違う。
受け取った価をあえて$_SESSIONに入れてどうする?
それは使わずに$subjectとかに代入する。

mail関数に入れるデータはエンコードするか、mb_send_mailを使う。

あとは動いてるならいいんじゃない?