Google 将 Exim Mail 重写为“root@empty”

Google 将 Exim Mail 重写为“root@empty”

我有一台运行 Exim 4 的 Debian Jessie 服务器,将 GMail 设置为智能主机。如果我尝试使用外部地址发送邮件(即[电子邮件保护]),它工作正常。如果我将邮件发送到rootcanadianluke(本地用户名),我会收到两条消息:我发送的消息和 GMail 自动生成的电子邮件,说它无法将邮件发送到root@empty。我们正在使用 Google Apps for Non-Profits。

电子邮件发送成功,因此我知道它不是完全的 Exim4,但我不完全相信它完全是 GMail。

我在终端上用来发送电子邮件的命令:mail root -s Test

Delivery to the following recipient failed permanently:

     root@empty

Technical details of permanent failure:
DNS Error: Address resolution of empty. failed: Domain name not found

----- Original message -----

DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=MYDOMAIN_COM.20150623.gappssmtp.com; s=20150623;
        h=from:to:subject:message-id:date;
        bh=YJWMysPl36audKpPjWIG/TOl/JVGuKuq1l4/HEAjxb8=;
        b=eIIQpLxw5TFAwnKw4P3gQpKlKbnf9I1PRpzfElBK4m+g+8cu/3z3hBFxMIMdV2Heli
         5CDCvVpaxbiqBJBcyeNnJubwyb8pir2CEnkiKaLJVJjTK3fZkpiI0KlTWkjilMnZeTLy
         SSzJdu437Bo2ONDY960+SX4cZtUE2p2fMcY7zhm8OTPWvXuDJ+DMoLVMuMfBfR+000dL
         ksNXGUD9teGOxYBV5a4c5/SPyeHXY++Pr8AOY+4lU9nt3OIocaozwMGfJOiV0MiiC4MZ
         w1UaXPjygFkzywsgjRbGyh483J0r4pS522fTUvz0qzAtMoIWmNOTCzAIulxxSQXb+hlp
         HG8Q==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20130820;
        h=x-gm-message-state:from:to:subject:message-id:date;
        bh=YJWMysPl36audKpPjWIG/TOl/JVGuKuq1l4/HEAjxb8=;
        b=gBolH/1kEUPQVIVrhMhtsOHaBHc9CIbEfqtAru5aJKSgoCst11qOUFQHC+tPrjVuhH
         s1JvVw7w6f05543JED9ak2SaQ5o5Iz6oWAkS3Z72MBwBaFlM144d/e4N64OYUG0Df4aR
         UDo/ryRdFOZ1WInOrTaoF9BWI/glLCtUPoadpqJ1utk74qEuZE4Ff3as/GjKAE5LXM3O
         Me27QYddAMMCdHi2DPtmkiM/3TosQjdaGv1QbGjk/ZS/q1HqdXCbZhjj65PwIiGDRxdk
         kw49ybPDjyoIFR5IzHM/vI7P3lC6LkXZq4zEgitBGuafwB52Luvl1jCTxUXZbLiODXko
         yDxQ==
X-Gm-Message-State: ALoCoQn4f0bfvp6Tk6pmiVZgxHs/bn8OVKale7+375O8j9UzvWgsYVSltXGIbvQQk5Fxi3DKGh5o
X-Received: by 10.140.94.116 with SMTP id f107mr417247qge.0.1447108430809;
        Mon, 09 Nov 2015 14:33:50 -0800 (PST)
Return-Path: <[email protected]>
Received: from example.com ([93.184.216.34])
        by smtp.gmail.com with ESMTPSA id 83sm102514qhw.27.2015.11.09.14.33.50
        for <root@empty>
        (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Mon, 09 Nov 2015 14:33:50 -0800 (PST)
From: root <[email protected]>
X-Google-Original-From: root <root@empty>
Received: from root by example.com with local (Exim 4.84)
        (envelope-from <root@empty>)
        id 1Zvv0W-0006Lj-Tf
        for root@empty; Mon, 09 Nov 2015 17:33:48 -0500
To: root@empty
Subject: Sup
Message-Id: <[email protected]>
Date: Mon, 09 Nov 2015 17:33:48 -0500

更新。我让它再次发送邮件,但它给出了一个新的错误。我在/etc/aliases以 root 身份发送邮件的位置中添加了我的用户名,并/etc/email-addresses设置为将发给我的邮件发送到我的常规电子邮件帐户([电子邮件保护])。

# more exim4/update-exim4.conf.conf
dc_eximconfig_configtype='smarthost'
dc_other_hostnames=''
dc_local_interfaces='127.0.0.1'
dc_readhost='ex.com'
dc_relay_domains=''
dc_minimaldns='false'
dc_relay_nets=''
dc_smarthost='smtp.gmail.com::587'
CFILEMODE='644'
dc_use_split_config='true'
dc_hide_mailname='true'
dc_mailname_in_oh='true'
dc_localdelivery='mail_spool'

现在,电子邮件显示为来自的错误[email protected],仍然是相同的 DNS 错误:Address resolution of server.example.com failed: Domain name not found在 Google Apps 中。

下面是我的尾部/var/log/exim4/mainlog,显示邮件实际上正在离开服务器:

2015-11-12 07:01:01 1ZwqYn-0001oN-2H <= [email protected] U=root P=local S=2598
2015-11-12 07:01:01 1ZwqYn-0001oN-2H gmail-smtp-msa.l.google.com [2607:f8b0:400c:c06::6d] Network is unreachable
2015-11-12 07:01:02 1ZwqYn-0001oN-2H => [email protected] R=smarthost T=remote_smtp_smarthost H=gmail-smtp-msa.l.google.com [74.125.141.108] X=TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128 DN="C=US,ST=California,L=Mountain View,O=Google Inc,CN=smtp.gmail.com" A=plain C="250 2.0.0 OK 1447329663 h144sm1989632vke.26 - gsmtp"
2015-11-12 07:01:02 1ZwqYn-0001oN-2H Completed

我的/etc/aliases文件:

# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: canadianluke
canadianluke: [email protected]

答案1

电子邮件地址根@空无效电子邮件地址。远程服务器正确返回了错误电子邮件。

电子邮件地址通常需要由三部分组成,以符号 <@> 和点 <.> 分隔

第一部分通常是某种形式的用户名,但也可以是一个功能(销售、人力资源)或任何内容(只要您的 MTA 知道如何使用它),紧跟在符号 <@> 之后的第二部分是域名,紧跟在点 <.> 之后的最后一部分是 TLD 或顶级域名。出于显而易见的原因,这些不能是任意的。

[email protected]

MTA 不知道将您的电子邮件发送到地址为 root@empty 的何处。

当 MTA 知道如何处理特定格式的电子邮件地址时,这可能在本地系统上起作用,但一旦离开本地系统,它就会被拒绝,并且您会收到错误。

您需要做的是配置 exim,使其在本地传递格式为 name@example(其中 example 是您自己的域名)的电子邮件,而不是尝试将其发送出去,或者配置 exim 以正确的格式重写此类电子邮件[电子邮件保护]然后将其发送出去。

当你跑步时dpkg-重新配置 exim4-config有一个问题 接受邮件的其他目的地:如果您在其中添加了希望系统成为最终目的地的域,那么您尝试执行的操作应该可以正常工作。但您可能需要手动编辑配置文件。

由于您说您确实收到了电子邮件,但收到来自远程 MTA 的错误,因此您可能只需重新配置 exim 即可不发送此类电子邮件。我认为上述方法可能会自动解决该问题。

另请参阅:

https://www.rfc-editor.org/rfc/rfc5321

https://www.rfc-editor.org/rfc/rfc2821

更新:从您更新的问题来看,您似乎需要使用以下形式的电子邮件地址[电子邮件保护]或注册服务器.example.com在 google apps 上。我忘记具体怎么做了,但我知道可以配置。当然,请确保 server.example.com 的 DNS 设置正确。

关于你最后一条评论,你是否尝试将以下行添加到/etc/别名

根: [电子邮件保护]

这将自动告诉 exim 将发往该系统 root 帐户的邮件重定向至[电子邮件保护](甚至[电子邮件保护]如果您在别名中配置了它)。

答案2

您需要配置 exim 以将您的域添加到不合格的发件人和收件人地址(“不合格”的意思是“尚无域”)。

在纯 exim 中,该名称应为“qualify_domain”。由于您使用的是 debconf,我认为将 /etc/mailname 的内容设置为您的域应该可行。

然后,您就会遇到一个问题,即向外部发送邮件的用户的用户名应该与真实地址相对应。您的“root”用户将发送邮件,您希望它发送到哪里?通常的解决方案是让服务器只为自己接收邮件(myserver.example.com)。这样,系统生成的邮件就会保留在服务器上。对于向外部发送邮件,请使用 MUA 或 MTA 强制源电子邮件地址。对于 Exim (MTA),它称为发件人重写,你想要类似

begin rewrite
^mylogin@myserver$ my@email SFf`

答案3

我找到了根本原因,这要归功于@aseq回答以上,但我弄清楚了如何让它不发送来自 Google Postmaster 的额外邮件消息。

我曾关注过在 Debian 上使用 Exim4 设置 GMail 身份验证的教程,并要求我“选择” mail sent by smarthost; received via SMTP or fetchmail。这导致 Exim 期望本地帐户也发送邮件,但我只想要将邮件发送到我的主要电子邮件中。

这是一个典型的例子XY问题我应该对此有更多了解。我通过mail sent by smarthost; no local mail在其第一个屏幕上将exim4 设置为 解决了根本问题dpkg-reconfigure exim4-config。重新启动 Exim4 的服务,邮件就可以正常工作了!

相关内容