普段使っている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)
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
master.cf
smtp inet n - n - - smtpd submission inet n - n - - smtpd
この設定内容で、ログに出てくるメッセージは下記の内容になります。
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 <test@code4u.org>: Relay access denied; from=<info@xxxxxxxx.com> to=<test@code4u.org> proto=ESMTP helo=<[127.0.0.1]> May 10 18:58:45 xxxxxxxx postfix/smtpd[17998]: disconnect from provider[xxx.xxx.xxx.xxx]
エラーメッセージからだと、リレーする辺りで怒られちゃっているようなので試しに、「main.cf」の「mynetworks」に接続元(別PCが存在する)のIPアドレスを入れてみると送信が可能になりました。
ただ、これではIPが変わるたびに設定を変えると言うバカな状態になってしまうので意味はありません。
困り果てていた時に、友人がバージョン違いでこんな設定があることを発見してくれました。
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
「まさか!!」とは思いましたが、リレー用の設定が追加になっていたようです。
これを「main.cf」に追記してあげることで、別PCからのメール送信も可能となりました。
こんなハマったのは、ほんとに久々だったので見つけてくれた友人にめちゃくちゃ感謝です!
おおおおお・・・・
ありがとうございます。
OSを入れなおしてpostfix2.10.0で丁度はまってた所、大変貴重なHPに出会いました。
ありがとうございます!!!
問題解決してすっきりです!
コメントありがとうございます!
自分もかなり苦しめられたので、悩んでいたときの気持ちは何となくわかります。
無事、解決されたようで良かったです!