Postfix SMTP 中继服务器

Postfix SMTP 中继服务器

我使用 gmail 从我的 gmail 地址和我自己的域名接收电子邮件,但是 gmail 不再允许您从您自己的域名发送电子邮件,除非您提供自己的 SMTP 服务器来发送。

因此,我尝试在 Ubuntu 服务器上配置 Postfix,以便将来自任何远程设备的电子邮件转发到电子邮件上的目标电子邮件地址。我只希望服务器从 mydomain 转发电子邮件(仅当经过身份验证时),而不在服务器上的用户邮箱中保留任何电子邮件。

目前,我能够从特定源地址转发电子邮件,但是发送到 gmail 地址的电子邮件在转发时会被退回。如果我从服务器本身使用 sendmail,gmail 不会将其退回,这证明 gmail 乐意接收来自我的服务器的电子邮件。但是当电子邮件被转发时,我会从 gmail 收到以下消息:

status=bounced (host gmail-smtp-in.l.google.com[2a00:1450:400c:c00::1a] said:
550-5.7.1 [2001:41d0:a:f9a0::1      12] Our system has detected that this
550-5.7.1 message is likely unsolicited mail.
To reduce the amount of spam sent 550-5.7.1 to Gmail, this message has been
blocked. Please visit 550-5.7.1
http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for 550 5.7.1 more information. n6si25532296wjy.39
 - gsmtp (in reply to end of DATA command))

我还尝试使用标头检查来删除所有显示电子邮件来自其他客户端的标头,然后再将其送达服务器。但这没有帮助。

我发现的大多数信息都是关于通过 Gmail 转发我的所有电子邮件,但我不想这样做。我只是希望服务器充当最终的 MTA,将电子邮件直接发送到收件人的邮件服务器,而不会被视为垃圾邮件。

我当前的 postfix 配置:

# 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

# 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_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

# 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
myhostname = {@mydomain.com}
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = {@mydomain.com}, {server_hostname}, localhost
relayhost =
mynetworks = {my_ip_address} 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

# Strip received from headers to hide original remote client address
mime_header_checks = regexp:/etc/postfix/header_checks
header_checks = regexp:/etc/postfix/header_checks
smtp_header_checks = regexp:/etc/postfix/header_checks

答案1

您几乎肯定会遇到不匹配的 DNS 条目。在使用 IPv6 传输的情况下,AAAA 和 PTR 记录必须与 MTA 的源地址匹配,也必须与您声称的 EHLO 名称匹配。

相关内容