Mailpitよりも軽量なダミーSMTPサーバー「MailCrab」の導入方法
先日テストメールの受信テストを行えるMailpitコンテナを導入したが、これよりも更に軽量で尚且つメモリ割り当てが少なくても利用できるMailCrabというツールを見つけた。MailCrabコンテナの導入方法とPHPからの送信テストまでメモ。
MailCrab
Github
https://github.com/tweedegolf/mailcrab
環境について
VPS
今回はKAGOYA CLOUD VPSのCPU1コア / メモリ1GBプランで作業した。SSH接続は公式案内の通り以下でログインできる。
- 接続ポート -> 22
- ユーザ名 -> root
- パスワード or 秘密鍵 -> インスタンス作成時に選択したもの
ホスト(VPS)側
- AlmaLinux 8.10 (Cerulean Leopard)
コンテナ側
- podman version 4.9.4-rhel
- PHP 8.4.24(cli)
対応方法
docker-compose.yml
MailCrabのみ書いているが、実際はPHPの設定も追加すること。
services:
# MailCrabコンテナ用設定
mailcrab:
container_name: mailcrab-container
image: marlonb/mailcrab:latest
restart: always
# PHP等から送信するSMTPポートは 19935 -> 1025
# ブラウザで確認するWeb画面ポートは 19990 -> 80
ports:
- "19935:1025"
- "19990:1080"
environment:
TZ: "Asia/Tokyo"
networks:
web-mailcrab-net:
ipv4_address: 10.89.40.5
deploy:
resources:
limits:
memory: 16M
# ネットワーク設定
networks:
web-mailcrab-net:
driver: bridge
ipam:
config:
- subnet: 10.89.40.0/24
mailcrab_test.php
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
require_once __DIR__ . '/../../vendor/autoload.php';
$mail = new PHPMailer(true);
try {
$mail->SMTPDebug = SMTP::DEBUG_SERVER;
$mail->isSMTP();
$mail->Host = '10.89.40.5';
$mail->Port = 1025;
$mail->SMTPAuth = false;
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
$mail->setFrom('from@test.com', 'PHP App');
$mail->addAddress('to@test.com', 'Mail User');
$mail->Subject = 'Mailcrabのテスト送信';
$mail->Body = 'Mailcrabコンテナへテスト送信';
$mail->send();
echo "\n送信成功\n";
} catch (Exception $e) {
echo "\n送信失敗: {$mail->ErrorInfo}\n";
}
受信テスト
上記のmailcrab_test.phpにブラウザからアクセス後「ドメインもしくはIPアドレス:19990」にアクセスするとMailCrabにて受信したメールが確認できる筈。
補足
Mailpitの場合、メールはSQLiteに保存されるがMailCrabはメモリ上に保存されるため、コンテナを再起動すると消える点に注意。
関連記事
-
-
Podmanで導入したapache-phpに各種PHPモジュールを追加する方法
先日Podmanでapache-php8.4を導入したが、phpinfoで確認す ...
-
-
Podmanで作成したApache用コンテナにLet's Encryptを導入しHTTPS接続できるようにする方法
先日Podmanで作成したApache用コンテナに対してドメインを割り当てたが、 ...
-
-
PHPからMySQLに接続する際「getaddrinfo for xxxxxx failed」エラーの対応方法
Podmanコンテナ環境で直前まではPHP→MySQL接続できていたのに「pod ...
-
-
Podmanで導入したApacheのチューニング(mpm_prefork)に関する設定方法
Podmanで導入したApacheのチューニング(mpm_prefork)を行い ...
-
-
Podmanコンテナ環境にWordPressを導入の上、パーミッション等の各種設定を行う方法
Podmanコンテナ環境にWordPressを導入したい。何も考えずにWP関連の ...
