我已经在内部网络中设置了 SMTP 服务器,但由于服务提供商限制对端口 25 的访问,因此我想完全删除端口 25。
但是,即使使用我的服务器中的端口 587 进行身份验证,服务器也总是转到端口 25 上的中继主机,例如,如果我向 gmail 帐户发送电子邮件,我就会得到这样的结果。
Oct 14 07:18:03 smtp postfix/smtp[12902]: connect to alt4.gmail-smtp-in.l.google.com[74.125.136.27]:25: Connection timed out
Oct 14 07:18:03 smtp postfix/smtp[12905]: connect to alt4.gmail-smtp-in.l.google.com[74.125.136.27]:25: Connection timed out
Oct 14 07:18:03 smtp postfix/smtp[12903]: 6DA571015A3: to=<[email protected]>, relay=none, delay=2825, delays=2188/488/150/0, dsn=4.4.1, status=deferred (connect to alt4.gmail-smtp-in.l.google.com[74.125.136.27]:25: Connection timed out)
Oct 14 07:18:03 smtp postfix/smtp[12904]: 501161015A9: to=<[email protected]>, relay=none, delay=1601, delays=964/488/150/0, dsn=4.4.1, status=deferred (connect to alt4.gmail-smtp-in.l.google.com[74.125.136.27]:25: Connection timed out)
Oct 14 07:18:03 smtp postfix/smtp[12905]: AE1711015A7: to=<[email protected]>, relay=none, delay=2516, delays=1878/488/150/0, dsn=4.4.1, status=deferred (connect to alt4.gmail-smtp-in.l.google.com[74.125.136.27]:25: Connection timed out)
Oct 14 07:18:03 smtp postfix/smtp[12902]: EADD310159F: to=<[email protected]>, relay=none, delay=4595, delays=3957/488/150/0, dsn=4.4.1, status=deferred (connect to alt4.gmail-smtp-in.l.google.com[74.125.136.27]:25: Connection timed out)
我确信我在这里遗漏了一些基本的 SMTP 概念,但我不知道它们是什么。但我基本上需要停止使用端口 25 将电子邮件从我的内部网络发送到中继。
# TLS parameters
smtpd_use_tls = yes
smtpd_tls_CAfile = /etc/ssl/certs/ca.crt
smtpd_tls_cert_file = /etc/postfix/ssl/smtp.crt
smtpd_tls_key_file = /etc/postfix/ssl/smtp.key
smtpd_tls_auth_only = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtp_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_sasl_auth_enable = yes
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
mydomain = iriscrm.com
myhostname = smtp.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = smtp.example.com, smtp, localhost.localdomain, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 10.0.0.0/16 10.10.0.0/24
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
inet_protocols = ipv4
home_mailbox = Maildir/
mailbox_command =
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
tls_random_source = dev:/dev/urandom
# DKIM
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891
答案1
要执行您所说的操作,您必须将默认传输设置为端口 587。可以使用default_transport = smtp:587
但它不起作用,因为世界上大多数 SMTP 服务器根本没有开放端口 587。
你可以做的是:你必须得到一个 SMTP 中继,它可以接受你的邮件(在不同于 25 的端口上),并允许它们发往世界各地。幸运的是,gmail 也可以做到这一点,但只有在流量不太大的情况下才会起作用(否则他会考虑你垃圾邮件发送者)并且其配置可能有点棘手。
最好的情况是,如果您有一个由服务器托管提供商提供的服务器,该服务器不进行这样的端口限制,并且您可以使用它作为邮件中继。