Отключить PHP рассылку на Mac OS? - PullRequest
5 голосов
/ 16 декабря 2009

Я разрабатываю веб-приложение на PHP, и мой Macbook, работающий под управлением Snow Leopard, фактически отправляет электронные письма, когда вызывается функция PHP mail (). Это электронная почта клиентов, и это ПЛОХО.

Я мог бы предотвратить это в своем коде, но я бы предпочел просто отключить рассылку для моей машины. Есть ли способ сделать это под Mac OS?

Ответы [ 6 ]

3 голосов
/ 16 декабря 2009

Спасибо за сообщения. Вот мое решение.

Я переместил / usr / sbin / sendmail в /usr/sbin/sendmail.original и заменил / usr / sbin / sendmail на фиктивный скрипт sh. Я не хочу, чтобы эта конкретная машина когда-либо отправляла электронную почту.

Я также реализовал второе решение, при котором проверяю, является ли текущая машина машиной разработки, и если да, то никакие электронные письма не отправляются. Для этого я использую флаг Config :: get ('IS_DEVELOPER').

3 голосов
/ 16 декабря 2009

Обычно я использую класс-оболочку для mail (), который проверяет константу (что-то вроде DEBUG_MODE) и отправляет мне электронное письмо вместо исходного получателя (и включает в себя все исходные получатели в теле письма, чтобы я мог подтвердить все работает). В первый раз это немного лишняя работа, но это означает, что мне не нужно беспокоиться об отправке электронной почты «реальным» людям, но я все еще знаю, что все работает.

Я опубликовал простой пример . Он может использовать множество улучшений (обработка заголовков, проверка того, что поля cc и bcc также будут удалены), но он доставит вас до дома.

2 голосов
/ 16 декабря 2009

Почему бы не переместить адрес электронной почты в файл конфигурации, а затем на вашем компьютере использовать другой набор адресов? Такие вещи не должны быть жестко запрограммированы в приложении.

Например, в моих приложениях у меня есть база данных Config, в которой хранится вся эта информация. Когда приложение работает, в таблице Config устанавливаются фиктивные или безвредные адреса / информация. Таким образом, вам не нужно ни с чем связываться на компьютерах для разработки, а также упростить обслуживание, например, при изменении адресов электронной почты.

1 голос
/ 16 декабря 2009

Это означает, что вы должны установить sendmail (или что-то, что притворяется sendmail) в какой-то момент, но вы, вероятно, должны запретить это в своем коде в дополнение к отключению.

0 голосов
/ 16 декабря 2009

Вы можете попробовать опцию disable_functions в php.ini.

Например: disable_functions = mail

0 голосов
/ 16 декабря 2009

Вы сможете закрыть mail (), изменив настройку SENDMAIL_PATH. Документация здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...