В том то и дело, что всё вроде в порядке, никаких ошибок скрипт не выдаёт. Как написал ранее, скрипт два года работал вообще без проблем, никто ничего в нём не менял, и вдруг перестал...
При этом, если добавить символ ">" в
$headers .= "From: " . $email . ">\r\n";
то всё снова работает (и ещё пара примеров в первом сообщении)
Возможно, это связано с обработкой заголовков почтовыми сервиса (письма не приходят ни на Яндекс, ни на Mail.ru). А может, я не вижу какой-то очевидной мелочи... Но похоже никто пока не увидел.
Нельзя во From использовать чужие e-mail адреса, это нарушает DMARC и для доменов со строгой DMARC-политикой (mail.ru, yahoo.com) письма доходить не будут. Ставьте в From и конверте адреса, которые ваш сервер авторизован отправлять, настройте для низ SPF и DKIM. Если вам нужно отвечать на письма, то ставьте адрес пользователя в Reply-To.
Да, вы всё правильно пишете.
Указал в "Reply-To" емэйл клиента.
У меня хостинг reg.ru, по-моему там SPF и DKIM настраиваются автоматически. Сайт запускал "с нуля" и когда настраивал почту, настройки уже стояли (то ли SPF, то ли DKIM, сейчас уже забыл). Короче, со своими адресами проблем нет.
И аргументы просматривал, и смотрел выдаёт ли ошибки функция mail(). Ошибок не обнаружил.
Пробовал переставлять код (конкретно "header") местами - не помогает.
Ниже вложил весь код скрипта. Это форма обратной связи с возможностью прикрепить несколько файлов. Может, что подскажете...
(лирическое отступление) В основном я программирую на C# и JS, и там таких проблем у меня нет. А вот когда касаюсь PHP, у меня начинается "боль"... :) Часто решение ищешь тупо методом перебора, не понимая, почему предыдущий способ не работает, а этот вдруг заработал. Понятно, что есть какая-то логика, но чёт для меня она часто неочевидна, например как сейчас. :)