У меня на Pantheon настроен рабочий процесс для разработчиков, промежуточных и живых серверов. У моего сайта есть много правил, которые заставляют участников получать электронные письма по разным причинам. Иногда мне нужно работать над этим на моих сайтах разработки / разработки, но я понял, что, поскольку у них есть живые данные, иногда пользователи получают дополнительные или дублирующие электронные письма, когда я работаю над чем-то.
Есть ли простой способ отключить все возможности электронной почты (желательно автоматически, чтобы я не забыл) на сервере dev / staging? В идеале, я хотел бы отключить электронную почту через пользовательский модуль, так как у меня уже есть шаги, чтобы убедиться, что пользовательский модуль включен на dev / staging.
git update-index --assume-unchanged sites/default/settings.php
для того, чтобы settings.php не перемещался по разным средам. Некоторые люди предпочитают некоторую условную логику, которая проверяет настройки среды и включает в себя различные conf-файлы, основанные на среде (почти во всех существующих веб-фреймворках на любом языке). Единственное ограничение здесь свое воображение, это основной PHP / мерзавец материал, не должны быть добавлены к ответамsites/default/settings.php
, вместо этого сделайтеgit update-index --skip-worktree sites/default/settings.php
. При этом--assume-unchanged
вы потеряете изменения, внесенные в settings.php, если сделаете agit reset --hard
. См stackoverflow.com/questions/13630849/...Ответы:
В качестве другого, более быстрого варианта вы можете добавить следующие строки в файл settings.php вашего сайта (если у вас установлен модуль Devel, что вам, безусловно, следует делать, если это сайт разработчика).
Это заменит почтовую систему по умолчанию на почтовую систему разработки Devel, которая записывает электронные письма в файловый журнал, а не отправляет их получателю. По умолчанию файлы хранятся в
temporary://devel-mails
, но вы можете изменить это, установив другую переменную, например.источник
Просто обратите внимание, чтобы добавить еще один модуль в список «Есть модуль для этого»:
Я согласен, что эта функциональность может быть легко реализована с помощью нескольких строк кода, но с помощью этого модуля вы можете продолжать получать электронные письма на заранее определенный адрес с подробностями об исходном получателе, приятная функциональность imho.
источник
Или вы можете использовать hook_mail_alter для перенаправления или предотвращения друпал почты:
источник
git commit .
или что-то подобное.Drupal 8
Для Drupal 8 вы можете включить обработчик почты модуля Devel через систему конфигурации.
С
drush
ним было бы:источник
settings.local.php
:$config['system.mail']['interface']['default'] = 'devel_mail_log';
$config['devel.settings']['debug_mail_directory'] = 'temporary://my-directory';
.Я обычно использую модуль электронной почты Reroute для этого случая. Он может перенаправить всю электронную почту от разработчика на определенную электронную почту. В электронном письме также указывается, куда следует отправить это электронное письмо.
источник
Это будет работать без разработки и безопасно во всех трех средах.
Добавьте это в settings.php. Скопируйте его и измените среду
test
для тестирования.Тогда в моем модуле:
Автор идеи сообщения об изменении адреса электронной почты: http://www.jaypan.com/tutorial/preventing-emails-being-sent-drupal-7-development-environment .
источник
Я думаю, что модуль Mail Redirect идеально подходит для вас :) Еще один грязный способ - установить SMTP-модуль и установить неправильный smtp;)
источник
https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_mail_alter/7
источник
Таким образом, вы можете поместить это в ваши settings.php или settings.local.php, если у вас есть конкретные для dev, staging & production.
источник
Предполагая, что вы используете модуль Mailsystem , просто перейдите
admin/config/system/mailsystem
и выберитеDevelMailLog
.источник
Настроить свой SMTP , чтобы
localhost
и установить MailCatcher ( GitHub ) , который улавливает любое сообщение , отправленное на этом дисплее в веб - интерфейсе.Установка
gem install mailcatcher
mailcatcher
Настройте
sendmail_path
в PHP:или в конфигурации Apache :
Перейти к
http://localhost:1080/
smtp://localhost:1025
В Drush вы можете сделать как:
источник
если вы не хотите трогать конфиги Drupal, настройте MailHog на своем сервере, чтобы перехватывать все электронные письма, приходящие из вашего приложения.
источник
Включите модуль поддержки аутентификации SMTP, и вы можете напрямую отключить почтовый сервер SMTP по адресу
admin/config/system/smtp
.источник