PHPでメール送信テストする環境を作る

PHPでメール送信テストする環境を作る

PHPでメール送信するプログラムを作る必要があったので、DockerでPHPの環境を構築する。

さくらインターネットで使っていたPHPのバージョンは7.4系だったので、「php:7.4-apache」イメージを使う。このままだとメール送信する際のsendmailが入っていないので、MailHogというテスト用のメールサーバ環境を別途用意する。

https://github.com/mailhog/MailHog

この環境で送信したメールは外部には送信されず、MailHog内部で受信されてブラウザなどから受信メールを確認できるので便利。

PHP環境からMailHogにメールを送信するために、mhsendmailというプログラムを別途インストールして、php.iniの設定に加える必要があるので、php:7.4-apacheをベースに自前のイメージをビルドする。

FROM php:7.4-apache

RUN curl -sSL https://github.com/mailhog/mhsendmail/releases/download/v0.2.0/mhsendmail_linux_amd64 -o /usr/local/bin/mhsendmail \
    && chmod +x /usr/local/bin/mhsendmail 
RUN echo 'sendmail_path = "/usr/local/bin/mhsendmail --smtp-addr=mail:1025"' >> /usr/local/etc/php/conf.d/sendmail.ini

あとはDocker Composeの設定ファイルを作成してコンテナを立ち上げるだけ。ブラウザからローカルのポート8025で受信メールを確認できる。また、env_fileにはRemix側で使用している.envファイルのパスを渡して上げれば、PHP環境にも反映させることが可能。

name: greenstudio-web
services:
  php-app:
    build: ./php
    env_file: 
      - ../../.env
    volumes:
      - ../app:/var/www/html
    ports:
      - 8081:80
    depends_on:
      - mail

  mail:
    image: mailhog/mailhog
    ports:
      - 8025:8025

https://github.com/pontago/greenstudio-web

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です