Illustration

Cet article est un complément sur mon précédent post Lancer Drupal sur Docker

J'ai récemment mis à jour le module Simplenews pour un site Drupal 8. Passer de Simplenews 1.0-beta1 à 2.0-beta2 n'était pas une tâche simple, mais c'était nécessaire pour la préparation à une future migration vers Drupal 9 et l'échec n'était pas envisageable. Les tests sont importants pour toute mise à jour de module, mais pouvoir tester l'envoi de courriers électroniques dans un environnement de développement local était essentiel ici.

J'avais déjà configuré MailHog et j'ai remarqué que je ne recevais pas de courriels au moment où je m'y attendais. Non seulement je ne les recevais pas d'un bulletin d'information en cours de publication, mais je ne les recevais même pas en effectuant le test d'envoi de courriels par le biais de Swift Mailer. Les paramètres nécessaires pour mon environnement Docker étaint différents de ceux qui ont été définis sur le serveur.

L'ajout de MailHog dans Docker Compose est simple. Le fichier docker-compose.yml doit contenir :

services:
  # (...)
  mailhog:
    image: mailhog/mailhog:latest
    expose:
      - "1025"
    ports:
      - "8025:8025"
    restart: unless-stopped
    container_name: ${PROJECT_NAME}-mailhog

Pour les paramètres de Swift Mailer settings  j'ai ajouté ceci à mon fichier local.settings.php :

/**
 * Configuration du courrier pour les emails locaux.
 */
$config['swiftmailer.transport']['transport'] = 'smtp';
$config['swiftmailer.transport']['smtp_host'] = 'mailhog';
$config['swiftmailer.transport']['smtp_port'] = '1025';
$config['swiftmailer.transport']['smtp_encryption'] = 0;
$config['swiftmailer.transport']['smtp_credential_provider'] = 'swiftmailer';

Maintenant, j'ai Swift Mailer qui envoie le courrier et MailHog qui le reçoit.