Postfixでローカルサーバに対しメールが送信できない問題
先日の問題への対応で、インターネット経由でのメール送信ができないため、ローカルサーバに対しメールを送信することに。
送信先として「hoge@192.168.***.***」を指定し、Nodemailerからメール送信を試みたところ、Nodemailerから以下のエラーが返る。
{ "code": "EENVELOPE", "response": "5015.1.7Badsenderaddresssyntax", "responseCode": 501, "domain": "192.168.***.***", "exchange": "192.168.***.***", "recipients": [ "hoge@192.168.***.***" ] }
Nodemailerのログだけでは原因が特定できないため、Postfixのログを確認する。
$ sudo vi /var/log/maillog
すると、以下のログが確認できる。
postfix/smtpd[6510]: connect from unknown[192.168.XXX.XXX] postfix/smtpd[6510]: warning: Illegal address syntax from unknown[192.168.***.***] in MAIL command: <***@192.168.***.***> postfix/smtpd[6510]: lost connection after MAIL from unknown[192.168.***.***] postfix/smtpd[6510]: disconnect from unknown[192.168.***.***]
どうやら送信先アドレスの文法エラーの模様。
Postfixの仕様を確認したところ、Postfixのmain.cfを編集することで、送信先アドレスの@以降がIPアドレスの場合を許可されるらしい。
main.cfを編集。
sudo vi /etc/postfix/main.cf
main.cfに以下の一行を追加。
resolve_numeric_domain = yes
Postfixを再起動。
sudo /etc/init.d/postfix restart
この状態で、先ほどと同一の送信先アドレスに対しNodemailerからメールを送信する。
Postfixのログを確認すると、メールの送信に成功したことがわかる。
postfix/smtpd[8123]: connect from unknown[192.168.***.***] postfix/smtpd[8123]: 41FBD161525: client=unknown[192.168.***.***] postfix/cleanup[8128]: 41FBD161525: message-id=<***@192.168.***.***> postfix/qmgr[7847]: 41FBD161525: from=<***@192.168.***.***>, size=53229, nrcpt=1 (queue active) postfix/smtpd[8123]: disconnect from unknown[192.168.***.***] postfix/local[8142]: 41FBD161525: to=<hoge@[192.168.***.***]>, relay=local, delay=1.1, delays=0.99/0.08/0/0.05, dsn=2.0.0, status=sent (delivered to command: /bin/cat > `mktemp /var/tmp/mail.XXXXXXXX`) postfix/qmgr[7847]: 41FBD161525: removed