我正在尝试了解邮件服务器,但对设置中的所有移动部分感到十分畏惧。
目前我无法通过我的 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
谢谢
编辑1: 我忘了提一件事。我从 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:~#
编辑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 时显示的是“ser”,而不是“user”。
第二个问题:在我能够发送邮件后,我启动了防火墙,但停止接收邮件。这是因为到 tcp 25 的传入连接被阻止。我没有允许这种情况,因为我认为如果我将 smtpd 配置为使用 587,它就不需要打开端口 25,然而传入连接并非如此。
邮件设置现已按预期工作。