Имам доста странна ситуация. Потребител на моя сайт, който е посочен за получаване на уведомителни имейли, не получава своите имейли. След известно по-нататъшно разследване изглежда, че това е причинено от факта, че exim (по подразбиране) задава 'envelope-from' на @, което не може да бъде потвърдено от доставчика на имейл на потребителя. Ето защо написах рамка за обработка на всички имейли преди известно време (преди да разбера за този потребител). Тази функция задава правилните заглавки и задава допълнителния параметър -f, така че exim ще зададе правилния имейл адрес като адрес на плика.
Въпреки това, поради напълно неизвестни за мен причини, този потребител изглежда не получава своите имейли, генерирани от тази функция. Търсих обстойно скриптовете си и съм 99,99% сигурен, че няма друго място, от което този потребител може да получава имейлите си, да не говорим, че дори няма друго извикване на функцията mail() някъде в обсега / автоматизирани скриптове. Бих искал да кажа, че съм 100% сигурен в това, но фактът, че потребителят все още получава зле конструирани имейли (грешен плик от и липсващи заглавки) противоречи на това по някакъв начин. Написах различен error_handler, който прави обширно регистриране, така че знам, че имейлът не е конструиран по този начин поради някаква грешка.
Ето защо бих искал да деактивирам функцията mail() глобално, така че всички извиквания към нея да са неуспешни, с изключение на едно място в моята пощенска рамка. Тъй като ini настройката disable_functions може да бъде зададена само в php.ini, не мога динамично да променя това чрез ini_set()/ ini_restore(). Следователно въпросът ми е как да постигна това?