概要
過去に gmail を設定する方法を紹介しました 今回は docker コンテナで postfix サーバを構築してそのメールサーバと gitlab コンテナを連携する方法を紹介します
環境
- Ubuntu 18.04
- docker 20.10.7
- Gitlab 13.12.5
- postfix
docker-compose.yml
version: "3.6"
services:
gitlab:
image: gitlab/gitlab-ee:13.12.5-ee.0
ports:
- "22:22"
- "443:443"
- "9090:9090"
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'https://gitlab.example.com'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "mailserver"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_domain'] = "gitlab.example.com"
gitlab_rails['gitlab_email_from'] = 'gitlab@gitlab.example.com'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@gitlab.example.com'
restart: always
mailserver:
image: boky/postfix
environment:
ALLOWED_SENDER_DOMAINS: 'gitlab.example.com'
解説
postfix のイメージは boky/postfix を使っています ALLOWED_SENDER_DOMAINS で送信を許可するドメインを指定します
gitlab 側は smtp で gitlab_rails['smtp_enable']
を true にします
そして smtp_address に postfix コンテナのサービス名を指定します
gitlab と postfix コンテナは同一ネットワークに属するためこれで postfix にアクセスできます
from や reply-to に好きなアドレスを指定可能ですが基本的には external_url で起動している gitlab と同じドメインを指定しましょう 理由はメールのドメインが IP で解決できる必要があるためですが、それでも受信側の SPF レコードなどに登録されている必要もあるため迷惑メールになる可能性はあります
動作確認
ユーザを招待してメールが受信できるか確認してみましょう ちなみに Gmail では以下のエラーになり postfix から送信できませんでした
mailserver_1 | 2021-07-06T02:21:53.626911+00:00 INFO postfix/smtp[385]: AFA8B1A45C7: to=<xxx@gmail.com>, relay=gmail-smtp-in.l.google.com[64.233.188.26]:25, delay=2.9, delays=0.05/0.01/1.9/0.97, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[64.233.188.26] said: 550-5.7.1 [192.168.100.10] The IP you're using to send mail is not authorized to 550-5.7.1 send email directly to our servers. Please use the SMTP relay at your 550-5.7.1 service provider instead. Learn more at 550 5.7.1 https://support.google.com/mail/?p=NotAuthorizedError t5si1621087pjo.91 - gsmtp (in reply to end of DATA command))
最後に
当然ですがメールの受信はできないので注意しましょう
0 件のコメント:
コメントを投稿