编辑

编辑

编辑

我想澄清的是,我不希望我生成的电子邮件存储在此服务器上。我希望此服务器仅发送电子邮件,但不接收电子邮件,并且我的发件人地址应显示为我的注册域名。

原始帖子

我想将我的家庭服务器设置为电子邮件服务器,用于发送 cron 作业和计划报告。我不打算从这台机器接收电子邮件。我有一个静态 IP 和注册域名。我为我的域名创建了一个 mx 记录,即 mail.example.net,并为 mail.example.net 创建了一个 HOST(A) 记录。我已检查并发现 DNS 方面没有问题。我这样做是因为如果我省略此步骤,大多数(或所有?)邮件服务器都不会接受我的邮件。

这是我的 postfix main.cf 文件

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

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

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
myhostname = localhost
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
mydestination = localdomain, localhost, localhost.localdomain, localhost
relayhost =
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
mailbox_size_limit = 51200000
recipient_delimiter = +
inet_interfaces = loopback-only
inet_protocols = ipv4
myorigin = /etc/mailname

/etc/mailname正确指向example.net(不是 mail.example.net 我认为这是正确的)

但是我的 mailq 现在看起来像这样

673CCB6EE9B      451 Wed Jul 19 11:29:07  [email protected]
(delivery temporarily suspended: connect to mail.example.net[my.ip.was.here]:25: Connection refused)
                                         [email protected]

6B155B6EF04      770 Wed Jul 19 12:45:13  [email protected]
(delivery temporarily suspended: connect to mail.example.net[my.ip.was.here]:25: Connection refused)
                                         [email protected]

52EA3B6EF01      771 Wed Jul 19 12:15:57  [email protected]
(delivery temporarily suspended: connect to mail.example.net[my.ip.was.here]:25: Connection refused)
                                         [email protected]

如您所见,postfix 出于某种原因尝试访问我的公共 IP 地址上的端口 25 来发送电子邮件,但由于我不想接收电子邮件,因此我的调制解调器中未启用端口 25。我想我遇到了某种配置错误。

答案1

这不是针对您的确切问题的答案,但可能是针对您的实际问题的解决方案。

您需要将其设置为所谓的 Null Client。基本上,仅用于发送。在 Postfix 中,您已选择了一个功能齐全的 MTA,它可以做更多事情。我曾经遇到过类似的情况,并决定将 Postfix 仅用于这一小部分任务是没有意义的。这有点像买车不打算开,只是为了避难,而一个便宜且较小的棚子就足够了。

除了设置复杂性之外,还需要考虑资源。还有安全性。所以对我来说,找到一个较小的软件包是有意义的,它不是成熟的 MTA,但只发送我的警报,主要是 Fail2Ban 和 Monit。

我选择了MSMTP:http://msmtp.sourceforge.net/doc/msmtp.html

多年来,我一直在生产机器上使用它。我已将其设置为只发送给我自己。由于发件人电子邮件未设置为真正的邮箱,因此它无法通过许多反垃圾邮件措施,因此您必须将其列入您想要接收邮件的白名单。

如果您想继续使用 Postfix,您需要遵循空客户端配置设置文档:

http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client

答案2

Postfix 正在连接到您的公共 IP ( mail.example.net[xx.xx.xx.xx]:25: Connection refused)),因为

  1. 它尝试发送邮件至(而不仅仅是发件人)[email protected]

  2. example.net不在它的范围内(实际上这mydestination似乎是正确的),并且

  3. MX你对该IP的积分记录example.net

您需要

  • 将目标地址更改为此域内的其他地址,或者
  • 修复MX指向应该处理邮件的服务器example.net

您说的是...

我已为我的域名 mail.example.net 创建了 mx 记录,并A为 创建了 HOST() 记录mail.example.net。我已检查并发现 DNS 方面没有问题。我这样做是因为如果我省略此步骤,大多数(或所有?)邮件服务器都不会接受我的邮件。

这实际上可能是您的问题。检查针对的是HELOvs. Avs. PTR;认为原始服务器必须位于MX记录中是错误的:发送和接收邮件不是一回事!

你可能想学习发件人策略框架防晒指数 (SPF)。可以告诉接收方此服务器是 的允许发送方example.net,例如

example.net.  TXT  "v=spf1 ip4:198.51.100.5 include:aspmx.googlemail.com -all"

在此示例中,允许发送 Gmail 和 IP 地址198.51.100.5,但拒绝发送其他地址。

相关内容