0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

初心者が Rocky Linux 8 で Postfix + Devecot のメールサーバーを Docker で実行するために、 docker-mailserver を利用する

Last updated at Posted at 2025-02-16

ドキュメント

英語が読める人は、こんな記事読んでないでドキュメント読んで下さい。

間違っていたらコメントで御教示下さい

0. ゴール

domain は yourname@mail.yourdomain.jp
letsencrypt 更新通知用メールアドレスは ITSUMO.TSUKATTE.IRU@gmail.com
としています。適宜読み替えてどうぞ。

以下はインストール済みとします。

  • docker
  • git
  • VSCode

1. ダウンロード

お好きなディレクトリでどうぞ。

git clone https://github.com/docker-mailserver/docker-mailserver.git
cd docker-mailserver

2. 設定① mailserver.env の設定

cd docker-mailserver
vim mailserver.env

Vim なんて使わず VSCode を使いましょう

# 14行目
- OVERRIDE_HOSTNAME=
+ OVERRIDE_HOSTNAME=mail.yourdomain.jp

# 77行目
- TZ=
+ TZ=Asia/Tokyo

# 241行目
- SSL_TYPE=
+ SSL_TYPE=letsencrypt
+ LETSENCRYPT_HOST=mail.yourdomain.jp
+ LETSENCRYPT_EMAIL=ITSUMO.TSUKATTE.IRU@gmail.com

3. 設定② compose.yaml の設定

vim compose.yaml

hostname と Let's encrypt の Docker Volume の設定を追加します。

  services:
    mailserver:
      image: ghcr.io/docker-mailserver/docker-mailserver:latest
      container_name: mailserver
      # Provide the FQDN of your mail server here (Your DNS MX record should point to this value)
+     hostname: mail.yourdomain.jp
      env_file: mailserver.env
      # More information about the mail-server ports:
      # https://docker-mailserver.github.io/docker-mailserver/latest/config/security/understanding-the-ports/
      ports:
        - "25:25"    # SMTP  (explicit TLS => STARTTLS, Authentication is DISABLED => use port 465/587 instead)
        - "143:143"  # IMAP4 (explicit TLS => STARTTLS)
        - "465:465"  # ESMTP (implicit TLS)
        - "587:587"  # ESMTP (explicit TLS => STARTTLS)
        - "993:993"  # IMAP4 (implicit TLS)
      volumes:
        - ./docker-data/dms/mail-data/:/var/mail/
        - ./docker-data/dms/mail-state/:/var/mail-state/
        - ./docker-data/dms/mail-logs/:/var/log/mail/
        - ./docker-data/dms/config/:/tmp/docker-mailserver/
        - /etc/localtime:/etc/localtime:ro
+       - /etc/letsencrypt:/etc/letsencrypt
      restart: always
      stop_grace_period: 1m
      # Uncomment if using `ENABLE_FAIL2BAN=1`:
      # cap_add:
      #   - NET_ADMIN
      healthcheck:
        test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1"
        timeout: 3s
        retries: 0

4. 立ち上げてみる

docker compose up

バックグラウンドで起動したいなら

docker compose up -d

メールアドレスが追加されていない場合は、2分でシャットダウンします。それまでに、次へ GO!

5. メールアドレスを追加する

yourname@mail.yourdomain.jp だけじゃなく info@mail.yourdomain.jp も追加したいよ〜って思ったら、 usernameinfo に変更して、この作業を繰り返して下さい。
SecurePassword も強いパスワードに変更して下さい。

# docker compose を起動した状態で
# メールアドレスを追加するなら
sudo docker exec -it mailserver setup email add username SecurePassword

# パスワードを変更するなら
sudo docker exec -it mailserver setup email update username UpdatedSecurePassword

# 追加されているメールアカウントを確認するなら
sudo docker exec -it mailserver setup email list

詳しいコマンドは

6. DKIM の設定

docker exec -it mailserver setup config dkim

作成した公開鍵を表示します。yourdomain は変更して下さい。

sudo cat docker-data/dms/config/opendkim/keys/mail.yourdomain.jp/mail.txt
# mail._domainkey IN TXT ( 
#     "v=DKIM1; h=sha256; k=rsa; "
#     "p=公開鍵データを表す長い文字列"
#     "続きの分割されていた文字列" 
# )  ; ----- DKIM key mail for mail.yourdomain.jp

何らかの手段で、それらをコピーしておいてください。

7. DNS の設定

タイプ 名称 TTL
A mail 3600 メールサーバーの IP アドレス
MX mail 3600 ポイント先:mail.yourdomain.jp | 優先度:10
TXT _dmarc.mail 3600 下記参照
TXT mail._domainkey 3600 下記参照
_dmarc.mail の値

改行せず1行で入力します。

  • rua:追加したメールアドレスを全て列挙する
  • ruf:失敗レポートの送り先
v=DMARC1; p=quarantine; pct=100;
rua=mailto:yourname@mail.yourdomain.jp,
rua=mailto:mouhitotsuno@mail.yourdomain.jp,
ruf=mailto:ITSUMO.TSUKATTE.IRU@gmail.com 

mail._domainkey の値

ダブルクオート"を取り除き、分割されていたp値を結合して、改行せず1行で入力します。

v=DKIM1; h=sha256; k=rsa; 
p=公開鍵データを表す長い文字列と続きの分割されていた文字列を結合したやつ

8. 完了!

お好きなメールクライアントソフトで、ログインしてみましょう!
無事、送受信ができたら設定完了です!
お疲れ様でした。

参考資料&初心者でない方の丁寧な記事たち

docker-mailserverで簡単(?)メールサーバ構築 - 2022/06/03

docker-mailserverをさくっと立ち上げる(令和4年2月版) - 2022/04/22

docker-mailserverの設定 - 2022/05/02

docker メールサーバ構築 (docker-mailserver)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?