Utilisez MailHog pour vérifier le courrier dans l'environnement de développement (à l'aide de Docker)

Dans l'environnement de développement, il peut être difficile de vérifier le courrier ou vous pouvez faire attention à la destination de livraison, mais si vous utilisez un outil appelé MailHog, vous pouvez facilement configurer un environnement dans lequel vous pouvez vérifier le courrier fermé localement.

Mail Hog semble être fait en langue Go.

J'avais l'habitude d'utiliser un autre outil similaire appelé MailCatcher, mais je suis passé à MailHog car il était plus facile à construire.

Démarrez avec la configuration suivante avec docker-compose.

organisation des fichiers
.
├── docker-compose.yml
└── php
    ├── docker
    │   ├── Dockerfile
    │   └── php.ini
    └── mail_test.php

docker-compose.yml Comme l'interface Web est utilisée sur le port 8025, définissez le port.

version: '3'
services:
 php:
  build:
   context: ./
   dockerfile: php/docker/Dockerfile
  volumes:
   - ./php/:/var/www/html/
 mailhog:
  image: mailhog/mailhog
  ports:
   - "8025:8025" #Port d'interface Web

Dockerfile Puisque mhsendmail est requis pour envoyer du courrier depuis php, installez-le avec Dockerfile.


FROM php:5.6-apache
WORKDIR /var/www/html
RUN curl -sSL https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 -o mhsendmail \
    && chmod +x mhsendmail \
    && mv mhsendmail /usr/local/bin/mhsendmail
COPY ./php/docker/php.ini /usr/local/etc/php/

php.ini Réécrire «[fonction de messagerie]».

[mail function]
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
; sendmail_path = /usr/sbin/sendmail -t -i
;Réécrit ci-dessous
sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mailhog:1025"

mail_test.php

<?php

$to      = "[email protected]";
$subject = "TEST";
$message = "Test du courrier";
$headers = "From: [email protected]";

mb_send_mail($to, $subject, $message, $headers);
avec docker-compose
$ docker-compose up -d
Building php
Step 1/4 : FROM php:5.6-apache
 ---> 24c791995c1e
Step 2/4 : WORKDIR /var/www/html
 ---> Using cache
 ---> 1294d05c5c03
Step 3/4 : RUN curl -sSL https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 -o mhsendmail     && chmod +x mhsendmail     && mv mhsendmail /usr/local/bin/mhsendmail
 ---> Using cache
 ---> db0719944c4e
Step 4/4 : COPY ./php/docker/php.ini /usr/local/etc/php/
 ---> 264eb166413a
Successfully built 264eb166413a
Successfully tagged mailhog_php:latest
WARNING: Image for service php was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Pulling mailhog (mailhog/mailhog:)...
latest: Pulling from mailhog/mailhog
df20fa9351a1: Already exists
ed8968b2872e: Pull complete
a92cc7c5fd73: Pull complete
f17c8f1adafb: Pull complete
03954754c53a: Pull complete
60493946972a: Pull complete
368ee3bc1dbb: Pull complete
Digest: sha256:8d76a3d4ffa32a3661311944007a415332c4bb855657f4f6c57996405c009bea
Status: Downloaded newer image for mailhog/mailhog:latest
Creating mailhog_php_1     ... done
Creating mailhog_mailhog_1 ... done
interface WEB de mailhog

Affiché chez localhost: 8025 image.png

Exécuter un script d'envoi de courrier depuis l'intérieur du conteneur PHP
$ docker exec -it mailhog_php_1 /bin/bash
root@9c4b6a5df613:/var/www/html# php mail_test.php

La notification d'arrivée du courrier est affichée sur les fenêtres image.png Vous pouvez voir que l'e-mail est arrivé image.png image.png

Recommended Posts

Utilisez MailHog pour vérifier le courrier dans l'environnement de développement (à l'aide de Docker)
Créer un environnement de test de navigateur à l'aide de Capybara dans l'environnement de développement Docker
Script de configuration pour l'utilisation de docker dans un environnement proxy sur ubuntu 20.04.1
[Docker] Utiliser des variables d'environnement dans Nginx conf
Utiliser docker dans un environnement proxy sur ubuntu 20.04.1
Exécutez Redmine dans l'environnement local de Windows10 Pro-Use Docker Desktop pour Windows
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Améliorer les performances de l'environnement de développement Docker
Autoriser le développement dans l'environnement Eclipse à l'aide du SDK iPLAss
Créer un environnement de développement pour Docker, Java, vs code
Préparez un environnement de développement Nuxt (web) + Laravel (API) dans le même référentiel à l'aide de docker-compose
[Note] Exécutez le programme java dans l'environnement de développement intégré Eclipse-J'ai essayé d'utiliser git
Procédure pour introduire Docker dans l'environnement de développement des applications Rails existantes [Rails, MySQL, Docker]
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
Créez un environnement de développement Docker + Laravel PHP + Vue.js en 5 minutes
SSL dans l'environnement local de Docker / Rails / puma
Essayez de créer un environnement de développement Java à l'aide de Docker
Faire de l'environnement de développement Laravel (Docker) le plus puissant du Japon
Commande pour essayer d'utiliser Docker pour le moment
J'ai essayé d'utiliser Docker parce que je ne veux pas polluer l'environnement local dans le développement de l'onglet Microsoft Teams de MS Learn
Créer un environnement pour copier le livre "Test Driven Development"
Construction d'environnement de développement d'applications Web en Java (pour les personnes inexpérimentées)
Installer en spécifiant la version de Django dans l'environnement Docker
Environnement Docker Module Nuxt axios pour définir baseURL
J'ai essayé de construire l'environnement petit à petit en utilisant docker
Environnement de développement WSL2 + VSCode + Docker
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Utilisez un exemple de domaine pour le nom du package dans l'exemple de code
Installez lsb_release à partir de la ligne de commande lorsque lsb_release échoue dans l'environnement docker
Créer un environnement de développement pour Django + MySQL + nginx avec Docker Compose
Configurer un environnement Wordpress Docker sans utiliser l'image Worpdress
Nous allons créer un environnement de développement Spring Framework dans l'environnement sur site.
Construction d'environnement pour le développement d'applications Servlet
Construction d'environnement avec Docker pour les débutants
Utiliser le plugin Findbugs dans Eclipse
À propos de l'environnement de développement actuel (Java 8)
Création d'un environnement de développement Java (pour Mac)
Créer un environnement de développement Unity sur docker
Utilisation de cuda11.0 avec pytorch en utilisant Docker
[Construction de l'environnement] Rails + MySQL + Docker (les débutants peuvent également l'utiliser en 30 minutes!)
"Développement piloté par les tests" à partir du terminal Création d'un environnement de copie
Créez un environnement de "développement d'API + vérification d'API à l'aide de Swagger UI" avec Docker