Postfix不从本地主机接收邮件

我在Parabola(基于Arch的)安装中设置了Postfix + Dovecot。 它看起来像它的作品,我可以发送电子邮件到任何地址,它的工作原理,也收到邮件, 但只能从本地地址

如果我mail [email protected] ,我收到电子邮件(如自动发送给我一封电子邮件)。 但是,如果我从另一个电子邮件帐户,一个外部的,我根本没有收到它。

所有端口在本地工作,但如果我尝试telnet [my_public_IP] 25 (或587)失败(我会问我的ISP发生了什么事)。

更多的输出:

 $ postconf -n alias_database = $alias_maps alias_maps = hash:/etc/postfix/aliases broken_sasl_auth_clients = yes command_directory = /usr/bin compatibility_level = 2 daemon_directory = /usr/lib/postfix/bin data_directory = /var/lib/postfix debug_peer_level = 2 debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5 home_mailbox = Maildir/ html_directory = no inet_interfaces = localhost # I've tried using my IP address, with no luck inet_protocols = all mail_owner = postfix mailbox_size_limit = 134217728 mailq_path = /usr/bin/mailq manpage_directory = /usr/share/man message_size_limit = 134217728 meta_directory = /etc/postfix mydomain = eumela.ga myhostname = smtp.eumela.ga myorigin = $mydomain newaliases_path = /usr/bin/newaliases queue_directory = /var/spool/postfix readme_directory = /usr/share/doc/postfix sample_directory = /etc/postfix sendmail_path = /usr/bin/sendmail setgid_group = postdrop shlib_directory = /usr/lib/postfix smtp_tls_note_starttls_offer = yes smtp_tls_security_level = may smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination smtpd_sasl_auth_enable = yes smtpd_sasl_local_domain = smtpd_sasl_path = /var/run/dovecot/auth-client smtpd_sasl_security_options = noanonymous smtpd_sasl_type = dovecot smtpd_tls_cert_file = /etc/letsencrypt/live/eumela.ga/fullchain.pem smtpd_tls_key_file = /etc/letsencrypt/live/eumela.ga/privkey.pem smtpd_tls_loglevel = 1 smtpd_tls_received_header = yes smtpd_tls_security_level = may unknown_local_recipient_reject_code = 550 virtual_alias_domains = $mydomain virtual_alias_maps = hash:/etc/postfix/virtual $ cat /etc/dovecot/dovecot.conf protocols = imap pop3 auth_mechanisms = plain passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf } userdb { driver = sql args = /etc/dovecot/dovecot-sql.conf } service auth { unix_listener /var/spool/postfix/private/auth { group = postfix mode = 0660 user = postfix } user = root } #service auth { # inet_listener { # port = 587 # } #} mail_home = /home/vmail/%d/%n mail_location = maildir:~ ssl_cert = </etc/letsencrypt/live/eumela.ga/fullchain.pem ssl_key = </etc/letsencrypt/live/eumela.ga/privkey.pem 

输出10-auth.conf,10-mail.conf,10-master.conf,10-ssl.conf和20-imap.conf (来自/etc/dovecot/conf.d)


更新 : 这是从今天8月24日的日志。它是mail.log,mail.err和mail.info的组合

 inet_interfaces = localhost # I've tried using my IP address, with no luck` 

如果您只在本地主机上侦听,您的smtp服务器将无法从外部访问。 你可能应该改变这一切 。 比照 http://www.postfix.org/postconf.5.html#inet_interfaces

重新启动后缀服务后,你可以检查netstat -tulpn你的服务器正在监听的接口和端口。

如果postfix正在侦听端口25上的所有接口,但仍然无法从外部访问,则应检查防火墙设置

感谢@ Stefan的回答,但我也必须这样做:

 $ sudo postconf -e 'mydestination = localhost.$mydomain, localhost, $mydomain' 

现在我可以收到外面的邮件了

PS:我可以在'mydestination'中指定'all'吗?