実現したいこと
現在、Docker Postfix の環境で、メール送信専用サーバーを構築しています。
当初は何も分からず勉強と思い構築し、正常にメールを送信できていましたが、改めて構築した際、メールが送信出来ない状態で、その不具合を解消し、
SPFやDKIM等は徐々に設定しますが、プレーンなメールの送信がメールを送信出来ればと思っております。
発生している問題・分からないこと
エラーはDNS解決出来ないエラーとなります。
エラーメッセージ
error
1Host or domain name not found. Name service error for name=example.jp type=MX: Host not found, try again
該当のソースコード
From: example.com
To: example.jp
Dockerfile
1FROM ubuntu:22.04 2 3ENV DEBIAN_FRONTEND=noninteractive 4 5# 環境変数の設定 6ENV NODE_ENV=production 7 8RUN apt-get update && apt-get install -y \ 9 rsyslog \ 10 postfix \ 11 iputils-ping \ 12 dnsutils \ 13 netcat-openbsd \ 14 iproute2 \ 15 wget \ 16 libssl-dev \ 17 net-tools \ 18 sasl2-bin \ 19 && apt-get clean \ 20 && rm -rf /var/lib/apt/lists/*
main.cf
1(下記項目以外はデフォルト) 2inet_interfaces = all 3myhostname = mail.example.com 4myorigin = example.com 5mydestination = $myhostname, localhost.$mydomain, localhost 6relayhost = 7smtp_host_lookup = dns 8mynetworks_style = host 9mynetworks = 127.0.0.0/8, 172.17.0.0/16, 10.0.8.0/24
resolv.conf
1(下記項目以外はデフォルト) 2nameserver 8.8.8.8 3nameserver 1.1.1.1
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
コンテナ内から送信実行
echo -e "From: no-reply@example.com\nTo: shop@example.jp\nSubject: Test Email\n\nThis is a test email sent from Postfix on Docker." | sendmail -t
メール送信時のログ
postfix/postfix-script[129]: starting the Postfix mail system postfix/master[131]: daemon started -- version 3.6.4, configuration /etc/postfix postfix/pickup[132]: C0151202D99: uid=0 from=<root> postfix/cleanup[146]: C0151202D99: message-id=<20240813232431.C0151202D99@mail.example.com> postfix/qmgr[133]: C0151202D99: from=<root@example.com>, size=358, nrcpt=1 (queue active) postfix/smtp[148]: C0151202D99: to=<shop@example.jp>, relay=none, delay=0.03, delays=0.01/0.02/0/0, dsn=4.4.3, status=deferred (Host or domain name not found. Name service error for name=example.jp type=MX: Host not found, try again)
digコマンド
dig example.com ANY +noall +answer examples.com. 3600 IN MX 10 mail.examples.com. dig example.jp ANY +noall +answer example.jp. 3600 IN MX 0 sv*****.xserver.jp. sudo docker exec $(sudo docker ps -q -f name=dev_postfix) bash -c 'dig example.com ANY +noall +answer' example.com. 3600 IN MX 10 mail.example.com. sudo docker exec $(sudo docker ps -q -f name=dev_postfix) bash -c 'dig example.jp ANY +noall +answer' example.jp. 3600 IN MX 0 sv*****.xserver.jp.
sendmail コマンド
sudo docker exec $(sudo docker ps -q -f name=dev_postfix) bash -c 'echo -e "Subject: Test Email\nFrom: example@example.com\nTo: example@example.jp\n\nThis is a test email from Postfix" | sendmail -t -f example@example.com' とし送信を実行しても、 Host or domain name not found. Name service error for name=example.jp type=MX: Host not found, try again
cat /etc/resolv.conf コマンド
(色々変更し、現在の値は下記となります) sudo docker exec $(sudo docker ps -q -f name=dev_postfix) cat /etc/resolv.conf nameserver 127.0.0.11 search . options ndots:0 nameserver 8.8.8.8 nameserver 1.1.1.1 options edns0 (8.8.8.8、1.1.1.1 のみでもDNSエラーは解消されません) (/var/spool/postfix/etc/resolv.conf にはファイルがありませんでした)
nslookup コマンド
nslookup example.jp 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: example.jp Address: **.***.**.** nslookup -query=mx example.jp 8.8.8.8 Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: example.jp mail exchanger = 0 sv*****.xserver.jp. Authoritative answers can be found from:
どのドメインへメールを送信しても同じ「Host or domain name not found.」となります。
main.cf の設定を色々変えてみましたが、ドメインの解決が出来ませんため、
他見落としている設定があればご指摘いただければ幸いです。
何卒、よろしくお願いいたします。
補足
バージョン
Postfix: mail_version = 3.6.4
ネットワーク
NETWORK, ID, NAME, DRIVER, SCOPE
1ae39a6baf9c, bridge, bridge, local
4270238db37e, docker_gwbridge, bridge, local
f58f90d5e24e, host, host, local
ufjyjpirj69n, ingress, overlay, swarm
hhuor6855ath, dev_network, overlay, swarm, 10.0.8.0/24 << postfix
c05a8a97581a, none, null, local
ディレクトリ
dev/docker-stack-postfix.yml
dev/postfix/Dockerfile
dev/postfix/config/main.cf
dev/postfix/config/resolv.conf
回答1件
あなたの回答
tips
プレビュー