我想澄清,我不希望我的生成的电子邮件存储在此服务器上。 我希望此服务器只发送,但不能收到电子邮件,我的发件人地址应显示为我的注册域名。
我想设置我的家庭服务器作为电子邮件服务器发送cron作业和计划的报告。 我不打算从这台机器接收电子邮件。 我有一个静态IP和注册的域名。 我为我的域名创build了一个mxloggingmail.example.net,并为mail.example.net创build了一个HOST(A)logging。 我已经检查,可以看到,我没有在DNS方面的问题。 我这样做是因为大多数(或所有?)邮件服务器不会接受我的邮件,如果我省略这一步。
这是我的后缀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]
正如你所看到的,后缀尝试访问我的公共IP地址端口25由于某种原因发送电子邮件,但端口25没有启用在我的调制解调器,因为我不想接收电子邮件。 我想我有某种configuration错误。
Postfix连接到您的公共IP( mail.example.net[xx.xx.xx.xx]:25: Connection refused)
),因为
它试图发送邮件到(不只是从) [email protected]
example.net
不在它的mydestination
(实际上似乎是正确的)和
example.net
的MX
logging指向该IP。 你也需要
MX
指向哪个服务器应该处理example.net
的邮件。 你说…
我为我的域名创build了一个mxloggingmail.example.net,并为mail.example.net创build了一个HOST(
A
)logging。 我已经检查,可以看到,我没有在DNS方面的问题。 我这样做是因为大多数(或所有?)邮件服务器不会接受我的邮件,如果我省略这一步。
这实际上可能是你的问题。 检查是HELO
对比A
和PTR
; 认为源服务器必须位于MX
logging之间是错误的:发送和接收邮件是不一样的!
你可能想研究发件人政策框架 (SPF) 。 有可能告诉接收者这个服务器是example.net
允许的发送者,例如
example.net. TXT "v=spf1 ip4:198.51.100.5 include:aspmx.googlemail.com -all"
在这个例子中,允许发送Gmail和IP地址198.51.100.5
&被拒绝rest。
不是您的确切问题的答案,但可能是解决您的真正问题。
你想要的是将其设置为所谓的空客户端。 基本上,只发送。 在Postfix中,你已经select了一个完全成熟的MTA,可以做到比这更多。 我一直处于类似的情况,并决定使用Postfix来完成这个小部分任务是没有意义的。 有点像买了一辆无意开车的汽车,只是为了躲避,当一个便宜的,更小的车棚就可以做到。
除了设置复杂性,还有资源需要考虑。 和安全。 所以,我认为,find一个不是完全成熟的MTA的小包,而是发送警报,主要是Fail2Ban和Monit。
我选了MSMTP: http ://msmtp.sourceforge.net/doc/msmtp.html
现在在生产机器上使用它多年。 我把它设置为只发送给自己。 由于发件人的电子邮件没有设置为真正的邮箱,因此无法使用许多反垃圾邮件措施,因此您必须将其列入要将其列入的位置。
如果你想坚持使用Postfix,你需要遵循空客户端configuration设置文档:
http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client