我正在尝试了解邮件服务器,并且对设置中的所有移动部分感到非常害怕..
目前我无法从我的 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:~#
我的操作系统是 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://[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
第一个问题:我的 sender-login-maps.cf 文件中有错字。指定 dbuser 时说的是“ser”而不是“user”。
第二个问题:在我能够发送邮件之后,我启动了防火墙但是停止接收邮件。这是由于到 tcp 25 的传入连接被阻止。我不允许这样做,因为我认为如果我已将 smtpd 配置为使用 587,它不应该需要打开端口 25,但是对于传入连接而言并非如此。
邮件设置现在按预期工作。