web-dev-qa-db-fra.com

Comment désactiver simultanément tous les e-mails sortants d'un site?

Il y a des e-mails sortants automatisés de mon Drupal comme par courrier électronique principal, ubercart, formulaire Web et règles.

La raison en est que j'ai également un site de test qui est exactement la copie du site de production. Et je voudrais désactiver tous les e-mails sortants afin qu'aucun e-mail ne soit envoyé par erreur depuis le test.

J'ai installé les modules "phpmailer" "mime mail" "mail editor".

Existe-t-il une méthode prête à l'emploi pour le faire?

5
chinita7

Le module Maillog est exactement dans ce but, comme

Maillog offre une possibilité facile d'enregistrer tous les Mails à des fins de débogage. Il est possible d'empêcher l'envoi des mails, il n'est donc pas nécessaire d'avoir un serveur de messagerie supplémentaire pour tester la fonctionnalité de messagerie des autres modules ou du noyau drupal.

11
Scorchio

Il me semble que vous voudriez laisser Drupal faire sa chose de logique métier avec précision en tant que site de production. L'envoi de courrier (ou "e-mail de journalisation") est le travail du serveur de messagerie ... donc nous disons simplement au serveur de ne pas vraiment envoyer les e-mails.

Vous pouvez en faire une valeur de configuration de serveur de développement en utilisant php.ini sendmail_path valeur. À partir de ce Stackoverflow post, vous pouvez voir comment le configurer pour php.ini. Bien qu'il ne puisse pas aller directement dans une entrée vhost, il peut entrer dans une directive dans votre configuration Apache d'environnement de développement local, comme ceci ServerFault post .

De cette façon, peu importe ce que vous faites à Drupal, le serveur n'envoie jamais de courrier électronique.

<VirtualHost *:80>
    Standard stuff goes here

    <Directory /dir/to/your/web/root>
        php_admin_value sendmail_path "tee mail.out > /dev/null"
    </Directory>

</VirtualHost>
5
tenken

Un autre module de Nice à cet effet est Reroute Email . Il vous permet de définir une adresse e-mail à laquelle envoyer tous les e-mails lorsqu'ils sont actifs.

Ce module intercepte tous les e-mails sortants d'un site Drupal et les redirige vers une adresse e-mail configurable prédéfinie.

Cela est utile dans le cas où vous ne souhaitez pas que des e-mails soient envoyés à partir d'un site Drupal pour atteindre les utilisateurs. Par exemple, si vous copiez un site en ligne sur un site de test à des fins de développement, et vous ne voulez pas que des e-mails soient envoyés à de vrais utilisateurs du site d'origine. Ou vous voulez vérifier que les e-mails envoyés ne sont pas mis en forme de manière uniforme, pieds de page, etc.

C'est également une bonne démonstration de ce que hook_mail_alter (), disponible dans Drupal 5.x et versions ultérieures, peut faire.

3
klickreflex
/**
 * Implements hook_mail_alter
 * it will alter all email sent by drupal
 */
function modulename_mail_alter(&$message) {
  // 'To' field as ''(blank) so it wont send any email 
  $message['to'] = ''; 
}
0
Ajay Gadhavana

Il y a aussi cette page de la communauté Nice qui répertorie plusieurs autres possibilités pour obtenir le même résultat: Gestion de la gestion du courrier pour le développement ou le test

0
Julien

Il existe également MailSystem qui peut router les e-mails sortants vers TestingSystem.

0
Francisco Luz