设置仅转发电子邮件服务器

sei*_*tsu 9 email linux debian postfix forwarding

我想要做的就是安装 postfix,并转发电子邮件。我不需要任何东西留在我的服务器上。这让我见鬼去吧。我尽了最大努力,但 postfix 拒绝所有中继。

我想要的是这个。说我的服务器在example.com.我想要这个:

邮件转发:

user1@example.com -> user1@gmail.com
user2@example.com -> user2@yahoo.com
user3@example.com -> user3@hotmail.com
Run Code Online (Sandbox Code Playgroud)

我所需要的只是一个转发箱,它可以重定向收到的电子邮件。因为我的配置显然有问题,我真的可以只使用一个示例 main.cf 来满足我的目的,我会继续的。

编辑:日志

奇怪的是日志没有给我任何错误。

main.cf

mreiley@Omega-14:/var/log$ cat /etc/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

# 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.

myhostname = omega-14.omegadev.org
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = omega-14.omegadev.org, localhost.omegadev.org, localhost
relayhost = 
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all

virtual_alias_domains = omegadev.org monovec.com ifmovement.org
virtual_alias_maps = hash:/etc/postfix/virtual

mreiley@Omega-14:/var/log$ 
Run Code Online (Sandbox Code Playgroud)

虚拟转发文件:

mreiley@Omega-14:/var/log$ cat /etc/postfix/virtual
[EXPUNGED]@omegadev.org blahboybang@gmail.com
mreiley@omegadev.org blahboybang@gmail.com

mreiley@Omega-14:/var/log$ 
Run Code Online (Sandbox Code Playgroud)

然后我从 gmail 发送一封电子邮件来测试配置。这是 mail.log 显示的内容:

Jul 16 16:00:32 Omega-14 postfix/smtpd[4282]: connect from mail-px0-f179.google.com[209.85.212.179]
Jul 16 16:00:32 Omega-14 postfix/smtpd[4282]: 72784483A: client=mail-px0-f179.google.com[209.85.212.179]
Jul 16 16:00:32 Omega-14 postfix/cleanup[4287]: 72784483A: message-id=<4C40E48C.1080701@Paraphymn.com>
Jul 16 16:00:32 Omega-14 postfix/qmgr[4274]: 72784483A: from=<blahboybang@gmail.com>, size=2026, nrcpt=1 (queue active)
Jul 16 16:00:33 Omega-14 postfix/smtp[4288]: 72784483A: to=<blahboybang@gmail.com>, orig_to=<mreiley@omegadev.org>, relay=gmail-smtp-in.l.google.com[74.125.53.27]:25, delay=1.5, delays=0.08/0.01/0.08/1.3, dsn=2.0.0, status=sent (250 2.0.0 OK 1279321231 d5si4147919wam.28)
Jul 16 16:00:33 Omega-14 postfix/qmgr[4274]: 72784483A: removed
Run Code Online (Sandbox Code Playgroud)

日志声称交付完全成功,但电子邮件从未出现在我的收件箱或垃圾邮件文件夹中。

但是,如果我使用telnet,我会得到一个不同的故事。

mreiley@Omega-14:/var/log$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 omega-14.omegadev.org ESMTP Postfix (Ubuntu)
helo omegadev.org
250 omega-14.omegadev.org
mail from:mreiley@omegadev.org
250 2.1.0 Ok
rcpt to:blahboybang@gmail.com
554 5.7.1 <blahboybang@gmail.com>: Relay access denied
Run Code Online (Sandbox Code Playgroud)

更新!GOOGLE 本身似乎在阻止我。发送给其他提供商的电子邮件会通过,但当发送到 gmail 时,它们甚至不会命中垃圾邮件。

Nat*_*ell 2

telnet 会话和 postfix 日志似乎没有做同样的事情。

“RCPT TO”应该是本地用户,而不是 gmail 用户。

“MAIL FROM”也不同,因为在第二个中,您似乎是本地用户,而在第一个中,您是 gmail 用户。

因此 telnet 会话不是有效的测试。

日志表明 Google 已接受该电子邮件。再次检查您的垃圾邮件标签。