Я разрабатываю веб-приложение в PHP, и мой MacBook, рабочий Snow Leopard, на самом деле посылает электронные письма, когда почту PHP () функция называют. Это посылает клиентам по электронной почте, и это ПЛОХО.
Я МОГ предотвратить это в своем коде, но я скорее просто отключу отправку по почте для своей машины. Существует ли способ сделать это в соответствии с Mac OS?
Обычно я использую класс-оболочку для mail (), который проверяет наличие константы (что-то вроде DEBUG_MODE) и отправляет мне письмо вместо исходного получателя (и включает всех исходных получателей в тело почты, чтобы я мог подтвердить, что все работает). В первый раз это немного лишняя работа, но это означает, что мне не нужно беспокоиться об отправке электронной почты «настоящим» людям, но я все еще знаю, что все работает.
Я опубликовал простой пример . В него можно было бы внести множество улучшений (обработка заголовка, проверка того, что поля cc и bcc также были удалены), но это поможет вам большую часть пути домой.
Это означает, что в какой-то момент вы должны были установить sendmail (или что-то такое, что притворяется sendmail), но вам, вероятно, следует предотвратить это в своем коде в дополнение к его отключению.
Почему бы не переместить адрес электронной почты в файл конфигурации, а затем на вашем компьютере использовать другой набор адресов? Подобные вещи не должны жестко закодироваться в приложении.
Например, в моих приложениях у меня есть база данных Config, в которой хранится вся эта информация. Когда приложение работает, в таблице конфигурации задаются фиктивные или безопасные адреса / информация. Таким образом, вы не
Вы можете попробовать опцию disable_functions
в php.ini.
например: disable_functions = mail
У вас должна быть возможность закрыть mail (), изменив параметр SENDMAIL_PATH
. Документация здесь
Спасибо за сообщения. Вот мое решение.
Я переместил /usr/sbin/sendmail в /usr/sbin/sendmail.original и заменил /usr/sbin/sendmail на фиктивный скрипт sh. Я не хочу, чтобы эта машина когда-либо отправляла электронную почту.
Я также реализовал второе решение, в котором я проверяю, является ли текущая машина машиной разработки, и если да, то никакая электронная почта не рассылается. Для этого я использую флаг Config::get('IS_DEVELOPER').
.