Linux
Postfix 不發送郵件
我正在嘗試了解郵件伺服器,並且對設置中的所有移動部分感到非常害怕..
目前我無法從我的 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=<kareltsvetkov@gmail.com> to=<hostmaster@mydomain.abc> 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:~#
我的作業系統是 Debian 9,所有 iptables 規則在測試時都已刷新。這是我的 master.cf 和 main.cf –> https://pastebin.com/9WUnzYZt
謝謝
EDIT1: 我忘了提及的事情。我從我的 main.cf 中執行了 grep ‘smtp.*restrict’。我注意到 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:~#
**EDIT2:**我配置 mutt 以排除這是客戶端問題,但我似乎仍然無法讓它工作..
└─[$] <> cat muttrc set folder = "imaps://hostmaster@mydomain.abc@imap.mydomain.abc:993" set smtp_url = "smtp://hostmaster@mydomain.abc@smtp.mydomain.abc:587" set from = "hostmaster@mydomain.abc" 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 <hostmaster@mydomain.abc>: Temporary lookup failure
第一個問題:我的 sender-login-maps.cf 文件中有錯字。指定 dbuser 時說的是“ser”而不是“user”。
第二個問題:在我能夠發送郵件之後,我啟動了防火牆但是停止接收郵件。這是由於到 tcp 25 的傳入連接被阻止。我不允許這樣做,因為我認為如果我已將 smtpd 配置為使用 587,它不應該需要打開埠 25,但是對於傳入連接而言並非如此。
郵件設置現在按預期工作。