С конвертированием - мегабоян. Кроме того, в полях From може может быть русское имя и его надо бы тоже конвертить.
А вот уязвимость у вас есть. Вы вставляете тайтл почти как есть, а между тем в нем могут быть переносы строк, а это значит, злоумышленник может вставить туда свои заголовки и использовать ваш скрипт для спама.
А кроме описанного в комментах выше, хочу сказать вот что. Использование функции mail — не лучший вариант. Убедился на собственном опыте. Из-за подставлного отправителя половина писем не доходит, нет возможности проверить результат отправки. Гораздо надежнее и универсальнее использовать SMTP для отправки почты. Все свои проекты, которые раньше использовали mail, я перевел на SMTP. Тем более, что для этого существует много готовых решений.
Если проблема только с адресом отправителя, то решается она очень просто: добавьте в additional_parameters свой правильный e-mail в виде строки вида "-f user@example.com" - и всё будет нормально.
Главное — в полном контроле над процессом отправки и содержимым письма (включая заголовки). Кроме того, вы можете отправлять письма с любого ящика, даже если он требует SMTP-авторизации. Если делать это через "-f user@example.com", то половина писем попадет в спам в случае, если почта и хостинг на разных серверах.
Ну и конечно плюс в том, что @ не надо использовать ;)
Проблемы с кодировкой при посылке @mail в PHP