Postfix+Dovecotでメールを受信できない時の確認手順

メールを受信できない時の切り分け順序

  1. PostfixとDovecotが起動しているか
  2. SMTPでメールがサーバーへ届いているか
  3. Dovecotの認証が成功するか
  4. Maildirの所有者・権限が正しいか
  5. ポート、ファイアウォール、SELinuxに拒否されていないか
sudo systemctl status postfix dovecot
sudo journalctl -u postfix -u dovecot --since '30 minutes ago'
sudo postconf -n
sudo doveconf -n
sudo doveadm auth test USERNAME
sudo ss -lntp | grep -E ':(25|465|587|143|993)\b'

Maildirの権限を確認する

namei -l /home/USERNAME/Maildir
find /home/USERNAME/Maildir -maxdepth 2 -printf '%M %u:%g %p\n' | head

所有者は通常そのメールユーザーです。原因確認のためでもchmod -R 777は使用しないでください。SELinuxが有効な環境では、権限だけでなく監査ログとコンテキストも確認します。

この後の従来事例は「メールが存在するのにIMAPクライアントから見えない」場合の権限問題として参照できます。

Postfix + Dovecotでメール送受信のサーバを構築した際に、 かなりハマってしまったのでメモ。 Windowsクライアント側からIMAPでの受信を試みると、本来あるはずのメールが受信されず。 新着メールが無いものとして正常終了する。そこでサーバ側のログを確認。
vi /var/log/maillog
メールログをみると、ログインはできており、特段エラーも出ていない模様。
10441 Apr  9 03:33:40 hogehoge dovecot: imap-login: Login: user=<info>, method=PLAIN, rip=XXX.XXX.XXX.XXX, lip=YYY.YYY.YYY.YYY, mpid=16225, TLS, session=<aaaaa>
10442 Apr  9 03:33:40 hogehoge dovecot: imap(info): Disconnected: Logged out in=363 out=2762
もろもろ調べてみると以下で紹介されていました。 旧Hatenaダイアリーの参考記事(現在は公開終了) info, adminなどの特定メールアドレスは、 デフォルトでエイリアスに転送されているので、 転送させたくない場合はコメントアウトする必要がある。 (単純な知識不足でした)
#
#  Aliases in this file will NOT be expanded in the header from
#  Mail, but WILL be visible over networks or from /bin/mail.
#
#       >>>>>>>>>>      The program "newaliases" must be run after
#       >> NOTE >>      this file is updated for any changes to
#       >>>>>>>>>>      show through to sendmail.
#

# Basic system aliases -- these MUST be present.
mailer-daemon:  postmaster
postmaster:     root

# General redirections for pseudo accounts.
bin:            root
daemon:         root
adm:            root
lp:             root
sync:           root
shutdown:       root
halt:           root
mail:           root
news:           root
uucp:           root
operator:       root
games:          root
gopher:         root
ftp:            root
nobody:         root
radiusd:        root
nut:            root
dbus:           root
vcsa:           root
canna:          root
wnn:            root
rpm:            root
nscd:           root
pcap:           root
apache:         root
webalizer:      root
dovecot:        root
fax:            root
quagga:         root
radvd:          root
pvm:            root
amandabackup:           root
privoxy:        root
ident:          root
named:          root
xfs:            root
gdm:            root
mailnull:       root
postgres:       root
sshd:           root
smmsp:          root
postfix:        root
netdump:        root
ldap:           root
squid:          root
ntp:            root
mysql:          root
desktop:        root
rpcuser:        root
rpc:            root
nfsnobody:      root

ingres:         root
system:         root
toor:           root
manager:        root
dumper:         root
abuse:          root

newsadm:        news
newsadmin:      news
usenet:         news
ftpadm:         ftp
ftpadmin:       ftp
ftp-adm:        ftp
ftp-admin:      ftp
www:            webmaster
#webmaster:     root
noc:            root
security:       root
hostmaster:     root
#info:          postmaster
marketing:      postmaster
sales:          postmaster
support:        postmaster


# trap decode to catch security attacks
decode:         root

# Person who should get root's mail
#root:          marc
root: hoge@fuga.com
なるほど。まさにこれ。 info宛てのメールがpostmasterになってたわけですね。 目的のinfoをコメントアウトしたら、Windowsのメールクライアント側で正常に受信が出来ました。
タイトルとURLをコピーしました