无法使用 Postfix 中继主机在本地发送电子邮件

无法使用 Postfix 中继主机在本地发送电子邮件

我在同一个网络 172.16.0.0/24 中有两个 ubuntu 服务器 22.04。一个设置为 web 服务器,另一个设置为使用 mailcow 的邮件服务器。

首先,我的目标是当服务器更新安全更新时发送电子邮件通知。

我安装了 postfix 和 mailx,并根据我所知对其进行了配置。

当我从我的网络服务器发送测试电子邮件时,我无法使用命令行接收 它。当使用 telnet 时,我可以从我的网络服务器发送并从我的邮件服务器接收它。echo "this is a test email." | mailx -r [email protected] -s hello [email protected]

以下是来自 Web 服务器的日志文件以及我当前设置的 Postfix main.cf 文件配置。

非常感谢您的帮助。

邮件日志

Oct  6 08:45:25 cit-serv1 postfix/pickup[126772]: 86AAFFE040F: uid=0 from<[email protected]>
Oct  6 08:45:25 cit-serv1 postfix/cleanup[127005]: 86AAFFE040F: message-id=<[email protected]>
Oct  6 08:45:25 cit-serv1 postfix/qmgr[126773]: 86AAFFE040F: from=<[email protected]>, size=405, nrcpt=1 (queue active)
Oct  6 08:45:25 cit-serv1 postfix/local[127007]: 86AAFFE040F: to=<[email protected]>, relay=local, delay=0.07, delays=0.05/0/0/0.03, dsn=2.0.0, status=sent (delivered to mailbox)
Oct  6 08:45:25 cit-serv1 postfix/qmgr[126773]: 86AAFFE040F: removed

后缀main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no
# appending .domain is the MUA's job.
append_dot_mydomain = no
# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no
# See http://www.postfix.org/COMPATIBILITY_README.html -- default to 3.6 on
# fresh installs.
compatibility_level = 3.6
# TLS parameters
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_security_level=may

smtp_tls_CApath=/etc/ssl/certs
smtp_tls_security_level=may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = mydomain.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = $myhostname, mail.mydomain.com, localhost.localdomain, localhost
relayhost = [mail.mydomain.com]:587
mynetworks = 127.0.0.0/8 172.16.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
#inet_interfaces = all
inet_interfaces = loopback-only
inet_protocols = all

# outbound relay configurations
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_security_level = may
header_size_limit = 4096000

答案1

电子邮件正在本地传送,而不是发送到中继主机。您应该在/var/spool/mail/karl网络服务器上找到您的测试消息。

您将其mydomain.com作为设置的一部分包括在内mydestination

myhostname = mydomain.com
mydestination = $myhostname, mail.mydomain.com, localhost.localdomain, localhost

引自postfix 文档

mydestination 参数指定这台机器将在本地交付哪些域,而不是转发到另一台机器

mail.log 也通过诸如relay=local和 之类的提示来指示本地传送delivered to mailbox

相关内容