AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 735094
Accepted
Canadian Luke
Canadian Luke
Asked: 2015-11-10 14:41:57 +0800 CST2015-11-10 14:41:57 +0800 CST 2015-11-10 14:41:57 +0800 CST

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

  • 772

我有一个运行 Exim 4 的 Debian Jessie 服务器,将 GMail 设置为 Smarthost。如果我尝试使用外部地址(即 [email protected])发送邮件,它可以正常工作。如果我向rootor canadianluke(本地用户名)发送邮件,我会收到两条消息:我发送的消息,以及 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设置为将发往我的邮件发送到我的常规电子邮件帐户 ([email protected])。

# 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 中。

下面是 my 的尾部/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]
debian
  • 3 3 个回答
  • 1724 Views

3 个回答

  • Voted
  1. Best Answer
    aseq
    2015-11-10T18:20:49+08:002015-11-10T18:20:49+08:00

    电子邮件地址root@empty不是有效的电子邮件地址。远程服务器返回错误电子邮件是正确的。

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

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

    [email protected]
    

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

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

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

    当您运行dpkg-reconfigure exim4-config时,会出现一个问题 接受邮件的其他目的地:如果您在那里添加了您希望系统成为最终目的地的域,那么您尝试做的事情应该可以工作. 但是您可以手动编辑配置文件。

    由于您说您实际上收到了电子邮件并从远程 MTA 收到错误,您可能只需要重新配置 exim 以不发送此类电子邮件。我认为上面的内容可能会自动解决这个问题。

    另见:

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

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

    更新:从您更新的问题来看,您似乎需要使用[email protected]形式的电子邮件地址或在 google 应用程序上注册server.example.com 。我完全忘记了如何做到这一点,但我知道可以配置它。当然要确保 server.example.com 的 DNS 设置正确。

    关于您的最后评论,您是否尝试将以下行添加到/etc/aliases

    根:[email protected]

    这将自动告诉 exim 将发往该系统上的 root 帐户的邮件重定向到 [email protected](如果您在别名中配置,甚至是 [email protected])。

    • 2
  2. Law29
    2015-11-11T14:53:03+08:002015-11-11T14:53:03+08:00

    您需要配置 exim 以将您的域添加到不合格的发件人和收件人地址(“不合格”意味着“还没有域”)。

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

    那么问题来了,向外发邮件的用户的用户名要对应真实地址。您的“root”用户将发送邮件,您希望它去哪里?通常的解决方案是说服务器只为自己和自己接收邮件(myserver.example.com)。这样系统生成的邮件就保留在服务器上。对于发往外部的邮件,使用 MUA 或 MTA 强制源电子邮件地址。对于 Exim (MTA),它被称为sender rewriting,你想要类似的东西

    begin rewrite
    ^mylogin@myserver$ my@email SFf`
    
    • 2
  3. Canadian Luke
    2015-11-18T10:20:48+08:002015-11-18T10:20:48+08:00

    我发现根本原因是感谢@aseq 上面的回答,但我想出了如何让它不从 Google Postmaster 发送额外的邮件消息。

    我遵循了一个在 Debian 上使用 Exim4 设置 GMail 身份验证的教程,它要求我“[c]hoose mail sent by smarthost; received via SMTP or fetchmail”。这导致 Exim 期望本地帐户也可以发送邮件,但我想要的只是发送的邮件到我的主要电子邮件。

    这是我应该更加注意的XY 问题的经典示例。我通过将 exim4 设置mail sent by smarthost; no local mail为dpkg-reconfigure exim4-config. 重启Exim4的服务,邮件正常!

    • 1

相关问题

  • 关闭 FTP

  • 如何在同一台电脑上从 putty 连接 debian vmware

  • debian- 文件到包的映射

  • Debian Ubuntu 网络管理器错误 [关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve