- 2025-1-16
- ブログ

Laravelのユニットテストでメールの送受信をテストする際にMailhogを利用している方も多いと思います。
私も一部のシステムでMailhogを利用していました。そのユニットテストをGitHub Actionsで実行した際にMailhogのユニットテストを通すことができずに解決まで時間がかかったため備忘録として残しておきます。
下記のエラーが発生して解決に時間がかかりました。
Connection could not be established with host "mailhog:1025": stream_socket_client(): php_network_getaddresses: getaddrinfo for mailhog failed: Temporary failure in name resolution
基本的にci.ymlファイルに記載していくことになります。2つにわけて解説します。
①servicesにMailhogを追加する
Mailhogを利用するためにimageとportsを指定します。
mailhog:
image: "mailhog/mailhog:latest"
ports:
- 1025:1025
- 8025:8025
②envを指定する
環境変数を指定します。MAIL_HOSTに注意してください。
ローカル環境はMailhogで動作するのですが、GitHub Actionsの環境では動作しないためlocalhostを指定します。
GitHub Actionsはコンテナ内のホスト名が異なるため、localhostを明示する必要があります。
env: # 環境変数
MAIL_HOST: localhost # MailhogのSMTPサーバー
MAIL_PORT: 1025 # MailhogのSMTPポート
MAIL_MAILER: smtp
MAIL_USERNAME: null
MAIL_PASSWORD: null
MAIL_ENCRYPTION: null
MAIL_FROM_ADDRESS: hello@example.com
MAIL_FROM_NAME: test
上記の記載方法でGitHub Actionsでmailhogを利用可能になります。
見て触れて学ぶネット詐欺体験サービス「にせサギ」
にせサギはネットサギを安全に体験できるサービスです。
子供・高齢者・障害者、誰もが安全にインターネットを使える社会を目指しています。
解説の小冊子や教え方や授業案を記載した資料も無料で配布しています!