私はメール サーバーについて学ぼうとしていますが、セットアップにおけるさまざまな要素に非常に困惑しています。
現在、SMTP サーバーから送信できません。さまざまなドメインからのメールは問題なく受信できます。
メールを送信しようとすると、ログに以下のエントリが表示されます。
- メールログ
Jul 31 11:59:15 mail postfix/submission/smtpd[1290]: connect from unknown[78.136.22.232]
Jul 31 12:01:03 mail postfix/postscreen[1294]: CONNECT from [209.85.214.179]:46881 to [45.77.139.149]:25
Jul 31 12:01:03 mail postfix/postscreen[1294]: PASS OLD [209.85.214.179]:46881
Jul 31 12:01:03 mail postfix/smtpd[1297]: connect from mail-pl1-f179.google.com[209.85.214.179]
Jul 31 12:01:05 mail postfix/smtpd[1297]: 03178A46: client=mail-pl1-f179.google.com[209.85.214.179]
Jul 31 12:01:05 mail postfix/cleanup[1299]: 03178A46: message-id=<CAMJ_LmbWv_5o7GZJx8RwqOqz52O_sWTrgX0_=mSi_Vt6+uz++Q@mail.gmail.com>
Jul 31 12:01:05 mail postfix/cleanup[1299]: 03178A46: milter-reject: END-OF-MESSAGE from mail-pl1-f179.google.com[209.85.214.179]: 5.7.1 Gtube pattern; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<mail-pl1-f179.google.com>
Jul 31 12:01:05 mail postfix/smtpd[1297]: disconnect from mail-pl1-f179.google.com[209.85.214.179] ehlo=2 starttls=1 mail=1 rcpt=1 data=0/1 quit=1 commands=6/7
Jul 31 12:04:15 mail postfix/submission/smtpd[1290]: timeout after CONNECT from unknown[78.136.22.232]
Jul 31 12:04:15 mail postfix/submission/smtpd[1290]: disconnect from unknown[78.136.22.232] commands=0/0
root@mail:~#
私の OS は Debian 9 で、これをテストしている間にすべての iptables ルールがフラッシュされました。これが私の master.cf と main.cf です -->https://pastebin.com/9WUnzYZt
ありがとう
編集1: 言い忘れたことがありました。main.cf から 'smtp.*restrict' を grep しました。smtpd_recipient_restrictions が sql ファイルを指していることに気付きました。sql ファイル自体には以下のクエリがあります。これが送信メールが失敗する原因でしょうか?
root@mail:~# grep smtp.*restrict /etc/postfix/main.cf
smtpd_relay_restrictions = reject_non_fqdn_recipient
smtpd_recipient_restrictions = check_recipient_access mysql:/etc/postfix/sql/recipient-access.cf
smtpd_client_restrictions = permit_mynetworks
smtpd_helo_restrictions = permit_mynetworks
smtpd_data_restrictions = reject_unauth_pipelining
root@mail:~# grep query /etc/postfix/sql/recipient-access.cf
query = select if(sendonly = true, 'REJECT', 'OK') AS access from accounts where username = '%u' and domain = '%d' and enabled = true LIMIT 1;
root@mail:~#
編集2:クライアント側の問題ではないように mutt を設定しましたが、それでも動作しないようです。
└─[$] <> cat muttrc
set folder = "imaps://[email protected]@imap.mydomain.abc:993"
set smtp_url = "smtp://[email protected]@smtp.mydomain.abc:587"
set from = "[email protected]"
set realname = "hostmaster"
set spoolfile = "+Inbox"
set record = "+Sent"
set trash = "+Trash"
set postponed = "+Drafts"
mailboxes =Inbox =Sent =Trash =Drafts =Junk =Other
しかし、メールを送信しようとすると、別のドメインであっても送信者と同じメールアドレスであっても、このエラーが表示されます。
SMTP session failed: 451 4.3.0 <[email protected]>: Temporary lookup failure
答え1
最初の問題: sender-login-maps.cf ファイルに入力ミスがありました。dbuser を指定するときに、「user」ではなく「ser」と入力していました。
2 番目の問題: メールを送信できるようになった後、ファイアウォールを起動しましたが、メールの受信が停止しました。これは、TCP 25 への着信接続がブロックされていたためです。smtpd を 587 を使用するように構成した場合、ポート 25 を開く必要はないはずなので、これを許可しませんでしたが、着信接続の場合はそうではありません。
メール設定は期待どおりに動作するようになりました。