はじめて書き込みさせていただきます。
いつもおやじ様のサイトは参考にさせていただいてます。
Postfix + Dovecot + cyrus-sasl + MySQL + postfixadminで
メールサーバを構築しました。
受信に関しては、内部・外部に関係なく問題なく行なえるのですが、
外部の環境で自ドメインを使用して、別ドメインへメール送信を行なうと
「受信者の1人がサーバに拒否されたため、メッセージが送信できませんでした。拒否された電子メールアドレス:test@hogehoge.jp 件名 'Test mail' アカウント:'mx.hogehoge.jp',サーバ:'mx.hogehoge.jp',プロトコル:SMTP,サーバーの応答:'554<sample@hoge.ne.jp>:Relay access denied',ポート:25,セキュリティ(SSL):なし,サーバーエラー:554,エラー番号:0x800CCC79」
とエラーが出て送信が行なえません。
ちなみに内部(inside)の環境であれば、
自ドメインへも、別ドメインにも送信でき、
外部環境なら、自ドメインへは送信ができます。
Postfixの設定(main.cf)のSMTP-AUTHの設定は
以下のようにしてます。
mydestination =
mynetworks = 192.168.1.0/24, 127.0.0.0/8
relay_domains = $mydestination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
broken_sasl_auth_clients=yes
telnetでSMTP-AUTH認証を調べると
「535 Error: authentication failed」と出たため、
auth.logを見たところ、
MySQLへの認証の際、Where句で"username = test@mx.hogehoge.jp"となっていたため、認証ができないようだったので、
/usr/lib/sasl2/smtpd.confの
sql_select: SELECT password FROM mailbox WHERE username = '%u@%r' AND active = '1'
この部分を
sql_select: SELECT password FROM mailbox WHERE username = '%u@hogehoge.jp' AND active = '1'
としたところ、telnetでのテストでは
"235 Authentication successful"で認証できたのですが、
やはり、クライアントで試すと上記のエラーが出ます。
クライアントのメーラーはOEですが、
「このサーバーは認証が必要」の設定はしてありますし、
FWの25ポートは空いています。
あとは何処を確認したらよいのか分からず、
行き詰ってしまいました。
何かアドバイスがありましたら、
ご教示願います。
> Postfix + Dovecot + cyrus-sasl + MySQL + postfixadminで
> メールサーバを構築しました。
> 受信に関しては、内部・外部に関係なく問題なく行なえるのですが、
> 外部の環境で自ドメインを使用して、別ドメインへメール送信を行なうと
> 「受信者の1人がサーバに拒否されたため、メッセージが送信できませんでした。拒否された電子メールアドレス:test@hogehoge.jp 件名 'Test mail' アカウント:'mx.hogehoge.jp',サーバ:'mx.hogehoge.jp',プロトコル:SMTP,サーバーの応答:'554<sample@hoge.ne.jp>:Relay access denied',ポート:25,セキュリティ(SSL):なし,サーバーエラー:554,エラー番号:0x800CCC79」
> とエラーが出て送信が行なえません。
クライアント側のエラーはほとんど役にたたないので、サーバ側でどういうエラーがでているかを見るのが先決です。
必要ならデバッグレベルにして細かいログを採る等の対策も必要です。
> ちなみに内部(inside)の環境であれば、
> 自ドメインへも、別ドメインにも送信でき、
> 外部環境なら、自ドメインへは送信ができます。
これは、localからなので認証しなくても中継できるので参考にはなりません。
> Postfixの設定(main.cf)のSMTP-AUTHの設定は
> 以下のようにしてます。
> mydestination =
>
> mynetworks = 192.168.1.0/24, 127.0.0.0/8
>
> relay_domains = $mydestination
>
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_security_options = noanonymous
> smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
> broken_sasl_auth_clients=yes
>
>
> telnetでSMTP-AUTH認証を調べると
> 「535 Error: authentication failed」と出たため、
> auth.logを見たところ、
> MySQLへの認証の際、Where句で"username = test@mx.hogehoge.jp"となっていたため、認証ができないようだったので、
> /usr/lib/sasl2/smtpd.confの
> sql_select: SELECT password FROM mailbox WHERE username = '%u@%r' AND active = '1'
>
> この部分を
>
> sql_select: SELECT password FROM mailbox WHERE username = '%u@hogehoge.jp' AND active = '1'
>
> としたところ、telnetでのテストでは
> "235 Authentication successful"で認証できたのですが、
> やはり、クライアントで試すと上記のエラーが出ます。
単純に、クライアントの設定でアカウントにドメインを含めて記述していないだけではないですか?
ヴァーチャルなのでドメインを含めてユーザ管理されるので、OEのデフォルトでは受信/送信メールサーバのアカウントにドメインは設定されないのでそれが原因と思いますが・・・。
No.6340からのスレを参考にしてください。
> クライアントのメーラーはOEですが、
> 「このサーバーは認証が必要」の設定はしてありますし、
> FWの25ポートは空いています。
早速のご返答ありがとうございます。
> クライアント側のエラーはほとんど役にたたないので、サーバ側でどういうエラーがでているかを見るのが先決です。
> 必要ならデバッグレベルにして細かいログを採る等の対策も必要です。
maillogを確認しました。
外部から送信をした場合に"Relay access denied"となって、
送信が拒否されているようでした。
デバックレベルにログを変えるのは
syslogで設定すればよろしいのでしょうか?
> 単純に、クライアントの設定でアカウントにドメインを含めて記述していないだけではないですか?
> ヴァーチャルなのでドメインを含めてユーザ管理されるので、OEのデフォルトでは受信/送信メールサーバのアカウントにドメインは設定されないのでそれが原因と思いますが・・・。
> No.6340からのスレを参考にしてください。
。
No.6340のスレを確認しました。
クライアントのOEの設定は受信サーバのアカウント欄は
"アカウント@ドメイン名"としています。
送信サーバの「このサーバは認証が必要」の
"次のアカウントとパスワードでログイン"の設定も
受信サーバと同様に"アカウント@ドメイン名"としています。
サーバのポートはSMTPは25ポートにしてます。
他に何か考えられるでしょうか?
おやじは別作業中のため、そっちに気をとられていて早とちりした部分があるので、訂正も含め今までの情報を整理すると、いくつか???な部分があります。
> ちなみに内部(inside)の環境であれば、
> 自ドメインへも、別ドメインにも送信でき、
> 外部環境なら、自ドメインへは送信ができます。
今回は、SMTP-AUTHの問題なのでlocalどうしでも、クライアントで送信サーバで認証設定が必要と設定すれば認証できなければ送信できません。(前回レスは嘘です。)
従って、これがうまくいく理由としては、
1.クライアントで認証要になっていて、postfixも認証できている。
2.クライアントで認証要になっていないので、単にmynetworksという条件で中継している。
のいずれかなのですが、これは2かな? と思いますが、いかがでしょう。
もしそうなら、外部からのアクセス以前に内部でうまくいくか確認が必要です。
1だというなら、外部からできない理由はサーバまでアクセスがきているようですからネットワーク的な問題もないので理由は判りません。認証できれば、「permit_sasl_authenticated」で中継してくれるからです。
> Postfixの設定(main.cf)のSMTP-AUTHの設定は
> 以下のようにしてます。
> mydestination =
>
> mynetworks = 192.168.1.0/24, 127.0.0.0/8
>
> relay_domains = $mydestination
>
> smtpd_sasl_auth_enable = yes
> smtpd_sasl_security_options = noanonymous
> smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
> broken_sasl_auth_clients=yes
上記の設定は問題ないです。
> telnetでSMTP-AUTH認証を調べると
> 「535 Error: authentication failed」と出たため、
> auth.logを見たところ、
> MySQLへの認証の際、Where句で"username = test@mx.hogehoge.jp"となっていたため、認証ができないようだったので、
> /usr/lib/sasl2/smtpd.confの
> sql_select: SELECT password FROM mailbox WHERE username = '%u@%r' AND active = '1'
>
> この部分を
>
> sql_select: SELECT password FROM mailbox WHERE username = '%u@hogehoge.jp' AND active = '1'
>
> としたところ、telnetでのテストでは
> "235 Authentication successful"で認証できたのですが、
> やはり、クライアントで試すと上記のエラーが出ます。
何故、"username = test@mx.hogehoge.jp"と想定外だったのでしょうか? これは、単にuserを"test"で試験したため、myhostnameを補完してアクセスしただけではないですか?
但し、ここの説明では少なくとも認証ができたわけなので、後はクライアントの設定しかないとおやじは見たのですが・・・?
> クライアントのメーラーはOEですが、
> 「このサーバーは認証が必要」の設定はしてありますし、
> FWの25ポートは空いています。
アクセスログがあるようですから、ネットワーク上の問題はありません。
> > クライアント側のエラーはほとんど役にたたないので、サーバ側でどういうエラーがでているかを見るのが先決です。
> > 必要ならデバッグレベルにして細かいログを採る等の対策も必要です。
> maillogを確認しました。
> 外部から送信をした場合に"Relay access denied"となって、
> 送信が拒否されているようでした。
>
> デバックレベルにログを変えるのは
> syslogで設定すればよろしいのでしょうか?
postfixのmain.cfに、下記のように詳細情報を採りたいアドレスやサブネット、ドメイン等を書けば詳細ログがでます。但し、1コールが正常に通るだけで200行近くのログがでるので、現用機の場合は対象を相当絞り込まないと大変なことになります。
認証がらみなので、クライアントのアドレスだけがいいのではないでしょうか?
debug_peer_list = 192.168.1.100
debug_peer_list = aconus.com
>
> > 単純に、クライアントの設定でアカウントにドメインを含めて記述していないだけではないですか?
> > ヴァーチャルなのでドメインを含めてユーザ管理されるので、OEのデフォルトでは受信/送信メールサーバのアカウントにドメインは設定されないのでそれが原因と思いますが・・・。
> > No.6340からのスレを参考にしてください。
> 。
> No.6340のスレを確認しました。
> クライアントのOEの設定は受信サーバのアカウント欄は
> "アカウント@ドメイン名"としています。
> 送信サーバの「このサーバは認証が必要」の
> "次のアカウントとパスワードでログイン"の設定も
> 受信サーバと同様に"アカウント@ドメイン名"としています。
> サーバのポートはSMTPは25ポートにしてます。
上で、telnetではログインできたということから、ここ以外にはおやじは理由が見当たりません。postfixadminで設定しているドメインとここのドメインがあっていないぐらいしか思いつきません。
あとは、telnetではログインできたいう情報を無視すれば、以下も可能性として残っていますが・・・。
1. HPでは漏れていた(修正済み)が、mysqlで直接認証する場合は、デストリによっては"cyrus-sasl-sql"がインストールされていないので入れないと駄目。
2. postfixadminとsaslauthのパスワード形式(plaintext)が不一致。
おやじ様、お忙しいのにご返信ありがとうございます。
> 1.クライアントで認証要になっていて、postfixも認証できている。
> 2.クライアントで認証要になっていないので、単にmynetworksという条件で中継している。
>
> のいずれかなのですが、これは2かな? と思いますが、いかがでしょう。
> もしそうなら、外部からのアクセス以前に内部でうまくいくか確認が必要です。
> 1だというなら、外部からできない理由はサーバまでアクセスがきているようですからネットワーク的な問題もないので理由は判りません。認証できれば、「permit_sasl_authenticated」で中継してくれるからです。
現状は"1"のほうです。
内部環境で送信する場合、認証設定していないと
外部環境の時と同様の"Relay access denied"のエラーが出ます。
> 何故、"username = test@mx.hogehoge.jp"と想定外だったのでしょうか? これは、単にuserを"test"で試験したため、myhostnameを補完してアクセスしただけではないですか?
> 但し、ここの説明では少なくとも認証ができたわけなので、後はクライアントの設定しかないとおやじは見たのですが・・・?
postfixadminだとドメイン名も含めてusernameになっているのですが、
MIME::Base64で"test@hogehoge.jp\0test@hogehoge.jp\0hogepwd"とした場合に
auth.logのWhere句で"username = test.jp@mx.hogehoge.jp"となってしまっていたために
"user"を"test"で試してしまいました。
MIME::Base64で@を含む文字列を変換する場合等のやり方があるのでしょうか?
> postfixのmain.cfに、下記のように詳細情報を採りたいアドレスやサブネット、ドメイン等を書けば詳細ログがでます。但し、1コールが正常に通るだけで200行近くのログがでるので、現用機の場合は対象を相当絞り込まないと大変なことになります。
> 認証がらみなので、クライアントのアドレスだけがいいのではないでしょうか?
>
> debug_peer_list = 192.168.1.100
> debug_peer_list = aconus.com
デバックレベルにした場合には
maillogに200近いログが吐き出されるのでしょうか?
main.cfに
「debug_peer_list = test@hogehoge.jp」と追記して、
postfixをreloadしましたが、ログ数が変わらないので、
「debug_peer_list = hogehoge.jp」としてみましたが、
ログ数が変わりませんでした。
postconfで設定を確認しましたが、
debug_peer_listは有効になっているようです。
debug_peer_listと合わせて、
debug_peer_levelも変更してみましたが、
ログが増えていませんでした。
何か他にも設定が必要なのでしょうか?
> 上で、telnetではログインできたということから、ここ以外にはおやじは理由が見当たりません。postfixadminで設定しているドメインとここのドメインがあっていないぐらいしか思いつきません。
>
> あとは、telnetではログインできたいう情報を無視すれば、以下も可能性として残っていますが・・・。
>
> 1. HPでは漏れていた(修正済み)が、mysqlで直接認証する場合は、デストリによっては"cyrus-sasl-sql"がインストールされていないので入れないと駄目。
> 2. postfixadminとsaslauthのパスワード形式(plaintext)が不一致。
"cyrus_sasl_sql"はインストールされているのを確認しました。
Postfixadminのconfig.inc.phpのパスワードの部分は下記のようになっています。
「$CONF['encrypt'] = 'cleartext';」
telnetでテストをした際に気になったことがあるのですが、
EHLO localhostと入力した際に
250-AUTH PLAIN DEGIST-MD5 LOGIN CRAM-MD5
250-AUTH=PLAIN DEGIST-MD5 LOGIN CRAM-MD5
と表示されます。
/usr/lib/sasl2/smtpd.confでは
mech_list: cram-md5 degest-md5 plain login
と設定しているので、
250-AUTH PLAIN LOGIN DEGIST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DEGIST-MD5 CRAM-MD5
と表示されそうな気もするのですが・・・。
もう一つ、気になったのが、
telnetでテストした際や内部環境で送信を行った際は、
auth.logにはMySQLへのパスワード認証のログが
select文等も含め表示されているのですが、
外部から送信を行った場合、自ドメイン宛に送った場合は
"sql auxprop plugin using mysql engine"と表示されるだけです。
別ドメインに送った場合はログ自体がありません。
たぶん、"sql auxprop plugin using mysql engine"は
"cyrus_sasl_sql"絡みが出しているメッセージのような気もするのですが、
別ドメインで送った場合にログが出ないということは、
MySQLにパスワード認証していないということなのでしょうか?
追記ですが、
Postfixadminで違うドメイン名を設定してみたところ、
Postfixadminで設定されているドメイン同士であれば、
別ドメインでも外部からの送信ができることがわかりました。
<Postfixadminで設定>
hogehoge.jp
hogehoge.co.jp
<その他のメールサーバで設定>
hogehoge.ne.jp
hogehoge.jp → hogehoge.co.jp :OK
hogehoge.co.jp → hogehoge.jp :OK
hogehoge.jp → hogehoge.ne.jo :NG
hogehoge.co.jp → hogehoge.ne.jp :NG
hogehoge.ne.jp → hogehoge.jp :OK
hogehoge.ne.jp → hogehoge.co.jp :OK
以上です。
おやじ様のほうで、何か気づかれたことがありましたら、
お教えください。よろしくお願いいたします。
> > 1.クライアントで認証要になっていて、postfixも認証できている。
> > 2.クライアントで認証要になっていないので、単にmynetworksという条件で中継している。
> >
> > のいずれかなのですが、これは2かな? と思いますが、いかがでしょう。
> > もしそうなら、外部からのアクセス以前に内部でうまくいくか確認が必要です。
> > 1だというなら、外部からできない理由はサーバまでアクセスがきているようですからネットワーク的な問題もないので理由は判りません。認証できれば、「permit_sasl_authenticated」で中継してくれるからです。
> 現状は"1"のほうです。
> 内部環境で送信する場合、認証設定していないと
> 外部環境の時と同様の"Relay access denied"のエラーが出ます。
>
> > 何故、"username = test@mx.hogehoge.jp"と想定外だったのでしょうか? これは、単にuserを"test"で試験したため、myhostnameを補完してアクセスしただけではないですか?
> > 但し、ここの説明では少なくとも認証ができたわけなので、後はクライアントの設定しかないとおやじは見たのですが・・・?
> postfixadminだとドメイン名も含めてusernameになっているのですが、
> MIME::Base64で"test@hogehoge.jp\0test@hogehoge.jp\0hogepwd"とした場合に
> auth.logのWhere句で"username = test.jp@mx.hogehoge.jp"となってしまっていたために
> "user"を"test"で試してしまいました。
>
> MIME::Base64で@を含む文字列を変換する場合等のやり方があるのでしょうか?
本題ではありませんが、"test\@hogehoge.jp\0test\@hogehoge.jp\0hogepwd"のように"@"の前に"\"を入れてエスケープしてあげれば大丈夫です。perlの基本です。
> > postfixのmain.cfに、下記のように詳細情報を採りたいアドレスやサブネット、ドメイン等を書けば詳細ログがでます。但し、1コールが正常に通るだけで200行近くのログがでるので、現用機の場合は対象を相当絞り込まないと大変なことになります。
> > 認証がらみなので、クライアントのアドレスだけがいいのではないでしょうか?
> >
> > debug_peer_list = 192.168.1.100
> > debug_peer_list = aconus.com
> デバックレベルにした場合には
> maillogに200近いログが吐き出されるのでしょうか?
>
> main.cfに
> 「debug_peer_list = test@hogehoge.jp」と追記して、
> postfixをreloadしましたが、ログ数が変わらないので、
> 「debug_peer_list = hogehoge.jp」としてみましたが、
> ログ数が変わりませんでした。
>
> postconfで設定を確認しましたが、
> debug_peer_listは有効になっているようです。
>
> debug_peer_listと合わせて、
> debug_peer_levelも変更してみましたが、
> ログが増えていませんでした。
>
> 何か他にも設定が必要なのでしょうか?
おやじがアドレスと書いたのがいけないのでしょうか? おやじの例やmain.cfのコメントを見ればわかると思いますが、ここはメールのアドレスではなくIPアドレスもしくはIPアドレスに変換できるホスト名です。
> > あとは、telnetではログインできたいう情報を無視すれば、以下も可能性として残っていますが・・・。
> >
> > 1. HPでは漏れていた(修正済み)が、mysqlで直接認証する場合は、デストリによっては"cyrus-sasl-sql"がインストールされていないので入れないと駄目。
> > 2. postfixadminとsaslauthのパスワード形式(plaintext)が不一致。
> "cyrus_sasl_sql"はインストールされているのを確認しました。
>
> Postfixadminのconfig.inc.phpのパスワードの部分は下記のようになっています。
> 「$CONF['encrypt'] = 'cleartext';」
>
> telnetでテストをした際に気になったことがあるのですが、
> EHLO localhostと入力した際に
>
> 250-AUTH PLAIN DEGIST-MD5 LOGIN CRAM-MD5
> 250-AUTH=PLAIN DEGIST-MD5 LOGIN CRAM-MD5
>
> と表示されます。
>
> /usr/lib/sasl2/smtpd.confでは
> mech_list: cram-md5 degest-md5 plain login
> と設定しているので、
> 250-AUTH PLAIN LOGIN DEGIST-MD5 CRAM-MD5
> 250-AUTH=PLAIN LOGIN DEGIST-MD5 CRAM-MD5
> と表示されそうな気もするのですが・・・。
これは気にする必要はないでのでは?
> もう一つ、気になったのが、
> telnetでテストした際や内部環境で送信を行った際は、
> auth.logにはMySQLへのパスワード認証のログが
> select文等も含め表示されているのですが、
> 外部から送信を行った場合、自ドメイン宛に送った場合は
> "sql auxprop plugin using mysql engine"と表示されるだけです。
> 別ドメインに送った場合はログ自体がありません。
>
> たぶん、"sql auxprop plugin using mysql engine"は
> "cyrus_sasl_sql"絡みが出しているメッセージのような気もするのですが、
> 別ドメインで送った場合にログが出ないということは、
> MySQLにパスワード認証していないということなのでしょうか?
そのとおりです。おやじのHPのとおりに設定されていると仮定すれば、
1. 外部からだろうが内部からだろうが、SMTP-AUTHをサポートしている状態(上のログからサポート状態になっているのは間違いない。)なら、クライアント(これはメーラだけでなく、例えば、yahooのメールサーバからの自ドメイン宛て配送も含む)が認証要求してこなければ、とりあえず受け付ける。
2. その後、あて先が自ドメイン($inet_interfaces、$mydestination $virtual_alias_domains または $virtual_mailbox_domains にマッチするアドレス宛のメール、及び$relay_domains にマッチする)の場合は、配送する。
3.それ以外のあて先の場合は中継にあたるので、permit_sasl_authenticated つまり SMTP-AUTHを通過したもの以外は拒否される。
という動作になります。そこで、下記も同じですが上記で他のドメイン宛ての場合、"sql auxprop plugin using mysql engine"がでないというのは、認証していない=中継できないということなので、Postfixは正しく動作しているとしか考えられず、クライアントの設定が誤っているしか考えられないのですが?
後は、下記でいうhogehoge.ne.jpというドメインを扱っているサーバとの関係が?
というより、hogehoge.ne.jpあてが認証していない原因を探るほうが先決と思います。
postfix自体はいたって正常のような気がします。
> 追記ですが、
> Postfixadminで違うドメイン名を設定してみたところ、
> Postfixadminで設定されているドメイン同士であれば、
> 別ドメインでも外部からの送信ができることがわかりました。
>
> <Postfixadminで設定>
> hogehoge.jp
> hogehoge.co.jp
> <その他のメールサーバで設定>
> hogehoge.ne.jp
>
> hogehoge.jp → hogehoge.co.jp :OK
> hogehoge.co.jp → hogehoge.jp :OK
> hogehoge.jp → hogehoge.ne.jo :NG
> hogehoge.co.jp → hogehoge.ne.jp :NG
> hogehoge.ne.jp → hogehoge.jp :OK
> hogehoge.ne.jp → hogehoge.co.jp :OK
症状がOP25B対策そのもののような気がしますので、下記のことを確認してください。
1.OEの認証の設定でポートを25→587にする。
2.postfixのmaster.cfファイルのsubmissionの行の先頭のコメントを外し、postfixを再起動。
3.サーバとルータの587番ポートをあける。
違ってたらごめんなさい(^_^;)。
おやじ様、e-koba様アドバイスありがとうございました。
おかげさまで解決いたしました。
e-koba様のご指摘どおり、OP25Bの影響でした。
サーバ側にsubmissionの設定をし、
OEも587にポートを設定したら
無事に送信できました。
目の前のことばかり見ていても、原因が見えてこない。
もっと広い視野を持たないといけないですね。
勉強になりました。
改めてありがとうございました。
> おかげさまで解決いたしました。
> e-koba様のご指摘どおり、OP25Bの影響でした。
>
> サーバ側にsubmissionの設定をし、
> OEも587にポートを設定したら
> 無事に送信できました。
>
> 目の前のことばかり見ていても、原因が見えてこない。
> もっと広い視野を持たないといけないですね。
>
> 勉強になりました。
> 改めてありがとうございました。
今までおやじに説明されていた内容からは、Submissionポートの設定でうまくいく理由は全くないので、今までの状況認識が誤っているか、今も状況認識が誤っているかのいずれかのはずです。
OP25B対策については下記を見てもらえば詳しく書いてありますが、Submissionポートの設定が必要なのは、対策2であってクライアント側のISPがOP25Bを導入した場合です。
http://www.aconus.com/~oyaji/mail2/op25b.htm
従って、これで解決したというなら、そのクライアントからは宛先に関わらず(自ドメイン宛てと他ドメインへの中継)、またSMTP-AUTHがあろうがなかろうが、そもそもそのサーバ(Postfix)には25番でつながるわけがないので、おやじに説明していた内容(SMTP-AUTHのエラーがあった。別ドメインでも外部からの送信ができることがわかりました。)とは全く違うことをおっしゃっています。
おやじには、これでどうして解決できるのかが論理的にわかりません。後学のため、どうしてこれで解決したと判断されたのか、過去の説明を踏まえて解説してくれませんか?
ご返信が遅くなり申し訳ありません。
すみません。
実は、私も本当に納得して“解決”とした訳ではありません。
ただ、送信が問題なく(maillog等にエラーがなく)行える
ようになったため、ひとまず“解決”と書かせていただきました。
おやじ様のご指摘の通り、
OP25Bの対応で送信できるようになったのはいいのですが、
それまで外部環境から自ドメインへ25ポートで
送信できてしまっていたことと、
ISPのOP25Bで弾かれているのなら、
外部から送られたメールに対し、
メールサーバのSMTP認証でrelay access deniedのエラーを
掃いているのがいまだに納得できずにいます。
> 今までの状況認識が誤っているか、今も状況認識が誤っているかのいずれかのはずです。
今までの状況は私を含め、複数の人間でテストを行い確認しました。
多分、間違いなかったはずです。
(改めて指摘されると不安になりますが…)
ただ、もし25ポートからの自ドメインへの送信ができなかったり、
SMTP認証でエラーが出されたりしていなければ、
(つまりクライアント側だけに送信エラーが出ていたのであれば)
真っ先にOP25Bを疑っていたと思います。
外部環境で使用しているISPがOP25B未対応で、
自ドメインが使用しているISPがOP25B対応となっていたらとも
考えたのですが、この可能性も薄そうです。
逆にどうしてOP25Bの設定で送信できるようになったのか、
もしお分かりになるようでしたら、ご教示いただきたいです。
以上、よろしくお願いいたします。
> おやじ様のご指摘の通り、
> OP25Bの対応で送信できるようになったのはいいのですが、
> それまで外部環境から自ドメインへ25ポートで
> 送信できてしまっていたことと、
> ISPのOP25Bで弾かれているのなら、
> 外部から送られたメールに対し、
> メールサーバのSMTP認証でrelay access deniedのエラーを
> 掃いているのがいまだに納得できずにいます。
間違いなく25番ポートでテストしたアクセスがログに残っているなら、submissionの設定をしてうまくいく理由は絶対にありません。
実はこのログは、単に踏み台にしようとアクセスしてきているスパマーのログというオチはないですよね。時間やあて先はテストコールに間違いないのですよね。
この点がはっきりしないことには、有り得ないことが起こっているので、おやじの知識では状況認識が誤っているとしかいえませんが・・。