Facebook などのサイトでは、件名にメッセージを送信したユーザーの名前が表示されます。
このため、メッセージの件名にユーザーが入力した値に対してどのようなエスケープを行いますか? それとも、az、0-9、ピリオド、カンマ、一重引用符以外は許可しませんか?
電子メールのヘッダーには注意が必要です。8 ビット文字はちょっとダメです。(メールサーバーはそれらを拒否します)。
それを行う適切な方法は、件名行を MIME エンコードし、件名行に ASCII char \n が含まれていないことを確認することです (技術的には複数行の件名が可能ですが、多くのメール クライアントで問題が発生すると思います)。
詳細については、 http://en.wikipedia.org/wiki/MIME#Encoded-Wordを参照してください。
禁止文字がある場合はエスケープが必要です。件名は NL で終了するため、これはヘッダーに入れるべきではない唯一の (ASCII) 文字です。
RFC821も参照
お問い合わせフォームと同じ問題です。
電子メールのヘッダーを見ると、たとえば次のようになります。
Subject: user123 has sent you an invite
From: "User123" <user123@example.org>
ユーザー名が電子メール ヘッダーの値と似ていないことを確認する必要があります。ユーザーが「宛先: spamreceiver1@example.org、spamreceiver2@example.org、spamreceiver3@example.org、spamreceiver4@example.org」と名乗る可能性がある場合は、入力を消去する必要があります。
「コンタクト フォーム スパム」を検索すると、何をすべきかがわかります。少なくとも「To:」、「Subject:」、「From:」などをすべて削除する必要があります。