Mam konfigurację pracy serwera deweloperskiego, tymczasowego i na żywo skonfigurowaną w Pantheon. Moja strona ma wiele zasad, które powodują, że członkowie są wysyłani e-mailem z różnych powodów. Czasami muszę popracować nad nimi na moich stronach deweloperskich / inscenizacyjnych, ale zdałem sobie sprawę, że ponieważ mają one dane na żywo, czasami użytkownicy otrzymają dodatkowe lub zduplikowane wiadomości e-mail, gdy nad czymś pracuję.
Czy jest jakiś prosty sposób, aby wyłączyć wszystkie możliwości wysyłania wiadomości e-mail (najlepiej automatycznie, aby zapobiec zapomnieniu) na serwerze deweloperskim / pomostowym? Idealnie chciałbym wyłączyć pocztę e-mail za pomocą niestandardowego modułu, ponieważ mam już kroki, aby upewnić się, że moduł niestandardowy jest włączony podczas tworzenia / przemieszczania.
git update-index --assume-unchanged sites/default/settings.php
aby nie dopuszczać, by settings.php był wypychany w różnych środowiskach. Niektórzy ludzie wolą logikę warunkową, która sprawdza ustawienia środowiska i zawiera różne pliki conf oparte na środowisku (a właściwie prawie każdy inny istniejący framework internetowy, w dowolnym języku). Jedynym ograniczeniem tutaj jest wyobraźnia, to podstawowe rzeczy związane z PHP / git, nie trzeba dodawać do odpowiedzisites/default/settings.php
, zamiast tegogit update-index --skip-worktree sites/default/settings.php
. Za pomocą--assume-unchanged
tracisz zmiany wprowadzone w ustawieniach. Php, jeśli wykonaszgit reset --hard
. Zobacz stackoverflow.com/questions/13630849/…Odpowiedzi:
Jako kolejną, szybszą opcję, możesz dodać następujące wiersze do pliku settings.php swojej witryny (jeśli masz zainstalowany moduł Devel, co na pewno powinieneś, jeśli jest to witryna deweloperska).
Zastąpi to domyślny system pocztowy rozwiniętym systemem pocztowym Devela, który zapisuje wiadomości e-mail w dzienniku plików zamiast wysyłać je do adresata. Domyślnie pliki są przechowywane
temporary://devel-mails
, ale możesz to zmienić, ustawiając inną zmienną, np.źródło
Tylko uwaga, aby dodać kolejny moduł do listy „Istnieje moduł dla tego”:
Zgadzam się, że tę funkcjonalność można łatwo zaimplementować za pomocą kilku wierszy kodu, ale za pomocą tego modułu możesz nadal otrzymywać wiadomości e-mail na wcześniej zdefiniowany adres, ze szczegółami na temat pierwotnego odbiorcy, miłą funkcjonalność imho.
źródło
Lub możesz użyć hook_mail_alter, aby przekierować lub zapobiec mailom drupal:
źródło
git commit .
lub coś podobnego.Drupal 8
W przypadku Drupal 8 można włączyć moduł obsługi poczty modułu Devel za pośrednictwem systemu konfiguracji.
Dzięki
drush
temu byłoby:źródło
settings.local.php
:$config['system.mail']['interface']['default'] = 'devel_mail_log';
$config['devel.settings']['debug_mail_directory'] = 'temporary://my-directory';
.W tym przypadku zwykle używam modułu E-mail Reroute . Może przekierować wszystkie wiadomości e-mail z programisty na określone wiadomości e-mail. Wysłany e-mail określa także, dokąd ten e-mail powinien zostać wysłany.
źródło
Działa to bez rozwijania i jest bezpieczne we wszystkich trzech środowiskach.
Dodaj to w settings.php. Skopiuj go i zmień środowisko
test
na Test.Następnie w module:
Podziękowania za pomysł zmiany poczty można znaleźć na stronie http://www.jaypan.com/tutorial/preventing-emails-being-sent-drupal-7-development-environment .
źródło
Myślę, że moduł Przekierowanie poczty jest dla Ciebie idealny :) Innym brudnym sposobem jest instalacja modułu SMTP i ustawienie niewłaściwego smtp;)
źródło
https://api.drupal.org/api/drupal/modules!system!system.api.php/function/hook_mail_alter/7
źródło
Możesz więc umieścić to w pliku settings.php lub settings.local.php, jeśli masz określone dla deweloperów, inscenizacji i produkcji.
źródło
Zakładając, że używasz modułu Mailsystem , po prostu przejdź do
admin/config/system/mailsystem
i wybierzDevelMailLog
.źródło
Set-up your SMTP do
localhost
i zainstalować MailCatcher ( GitHub ), który łapie każdą wiadomość wysłaną do niego na wystawie w interfejs WWW.Instalacja
gem install mailcatcher
mailcatcher
Skonfiguruj swój
sendmail_path
w PHP, aby:lub w konfiguracji Apache :
Iść do
http://localhost:1080/
smtp://localhost:1025
W Drush możesz:
źródło
jeśli nie chcesz dotykać konfiguracji Drupala, skonfiguruj MailHog na swoim serwerze, aby przechwytywał wszystkie wiadomości e-mail wychodzące z Twojej aplikacji.
źródło
Włącz moduł obsługi uwierzytelniania SMTP i możesz bezpośrednio wyłączyć serwer poczty SMTP pod adresem
admin/config/system/smtp
.źródło