postfixの送信設定でハマった

Linux

普段使っているpostfixのバージョンより新しい2.10.0を利用したところ、受信は出来るのに送信ができない・・・設定は他で動いている内容とほぼ一緒。
原因と設定内容についてメモ用に記載します。(今後、同じ目に会う人が減るように)

 

postfixですが、普段は2.6.x ~ 2.9.xを利用する事が多く、まさか2.10.0にこんな落とし穴があるとは想像もしてませんでした。
まずは、稼働中の2.9.5の「main.cf」と「master.cf」などの設定を2.10.0に設定した状態で出来ること、出来ない事を分けて見ます。

出来ること
メールの受信
メールの送信(サーバから)

出来ないこと
メールの送信(別PCから)

 

いろいろ設定を変えたり、DNSの設定を見直したりと試行錯誤しましたが、送信(別PCから)だけが出来ません。
ログを見ながらあれこれ試しましたが、原因となる部分を見つけられません。

 

ちなみに、設定はこんな感じです。
main.cf(2.9.x)
[shell]
myhostname = mail.xxxxxxxx.com
mydomain = mail.xxxxxxxx.com
myorigin = $mydomain

inet_interfaces = all

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mynetworks = 168.100.189.0/28, 127.0.0.0/8

unknown_local_recipient_reject_code = 550
relay_domains = $mydestination

alias_maps =
alias_database =

# inet protocol
inet_protocols = ipv4

# mailbox size
mailbox_size_limit = 104857600;

# smtpd sasl auth
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# blocked invalid relay
smtpd_helo_required = yes
disable_vrfy_command = yes
strict_rfc821_envelopes = yes
allow_percent_hack = yes
swap_bangpath = yes
allow_untrusted_routing = no

# virtual alias setting
virtual_alias_maps = hash:/etc/postfix/valias
virtual_mailbox_base = /var/mails
virtual_mailbox_domains = /etc/postfix/vdomains
virtual_mailbox_maps = hash:/etc/postfix/vmaps
virtual_minimum_uid = 550
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
[/shell]

 

master.cf
[shell]
smtp inet n – n – – smtpd
submission inet n – n – – smtpd
[/shell]

 

この設定内容で、ログに出てくるメッセージは下記の内容になります。
[shell]
May 10 18:58:43 xxxxxxxx postfix/smtpd[17998]: connect from provider[xxx.xxx.xxx.xxx]
May 10 18:58:43 xxxxxxxx postfix/smtpd[17998]: NOQUEUE: reject: RCPT from provider[xxx.xxx.xxx.xxx]: 554 5.7.1 : Relay access denied; from= to= proto=ESMTP helo=<[127.0.0.1]>
May 10 18:58:45 xxxxxxxx postfix/smtpd[17998]: disconnect from provider[xxx.xxx.xxx.xxx]
[/shell]

 

エラーメッセージからだと、リレーする辺りで怒られちゃっているようなので試しに、「main.cf」の「mynetworks」に接続元(別PCが存在する)のIPアドレスを入れてみると送信が可能になりました。

ただ、これではIPが変わるたびに設定を変えると言うバカな状態になってしまうので意味はありません。

 

困り果てていた時に、友人がバージョン違いでこんな設定があることを発見してくれました。
[shell]
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
[/shell]

 

「まさか!!」とは思いましたが、リレー用の設定が追加になっていたようです。
これを「main.cf」に追記してあげることで、別PCからのメール送信も可能となりました。

こんなハマったのは、ほんとに久々だったので見つけてくれた友人にめちゃくちゃ感謝です!

コメント

  1. 同じくはまった者 より:

    おおおおお・・・・
    ありがとうございます。

    OSを入れなおしてpostfix2.10.0で丁度はまってた所、大変貴重なHPに出会いました。

    ありがとうございます!!!
    問題解決してすっきりです!

  2. errorcode より:

    コメントありがとうございます!

    自分もかなり苦しめられたので、悩んでいたときの気持ちは何となくわかります。

    無事、解決されたようで良かったです!

タイトルとURLをコピーしました