У меня довольно своеобразная ситуация. Пользователь на моем сайте, который указан для получения уведомлений по электронной почте, не получает свои электронные письма. После некоторого дальнейшего исследования, похоже, это связано с тем, что exim (по умолчанию) устанавливает 'envelope-from' в @, что не может быть проверено провайдером электронной почты пользователя. Вот почему я написал фреймворк для обработки всех электронных писем некоторое время назад (до того, как узнал об этом пользователе). Эта функция устанавливает правильные заголовки и устанавливает дополнительный параметр -f, чтобы exim установил правильный адрес электронной почты в качестве адреса конверта.
Однако по совершенно неизвестным мне причинам этот пользователь, похоже, не получает свои электронные письма, генерируемые этой функцией. Я интенсивно искал свои сценарии, и я на 99,99% уверен, что нет другого места, откуда этот пользователь мог бы получать свои электронные письма, не говоря уже о том, что нигде нет другого вызова функции mail () / автоматические скрипты. Я хотел бы сказать, что я на 100% уверен в этом, но тот факт, что пользователь все еще получает плохо составленные электронные письма (неправильный конверт и отсутствующие заголовки), как-то противоречит этому. Я написал другой обработчик ошибок, который ведет обширную регистрацию, поэтому я знаю, что электронная почта не создается таким образом из-за какой-то ошибки.
Вот почему я хотел бы отключить функцию mail () глобально, чтобы любые вызовы к ней не выполнялись, за исключением одного места в моей почтовой структуре. Поскольку параметр ini disable_functions может быть установлен только в php.ini, я не могу динамически изменить это с помощью ini_set () / ini_restore ().
Таким образом, мой вопрос: как мне этого добиться?