我有一个运行Exim 4的Debian Jessie服务器,将GMail设置为Smarthost。 如果我尝试使用外部地址发送邮件(即[email protected]),则工作正常。 如果我向root或canadianluke (本地用户名)发送邮件,则会收到两条消息:我发送的消息和GMail自动生成的一封电子邮件,表示邮件无法向root@empty发送邮件。 我们正在使用Google Apps for Non-Profits。
电子邮件通过,所以我知道这不是完全的Exim4,但我不完全相信,这完全是GMail。
我用来在terminal上发送电子邮件的命令: 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中Address resolution of server.example.com failed: Domain name not found 。
下面是我的/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]
电子邮件地址root @ empty 不是有效的电子邮件地址。 远程服务器返回错误邮件是正确的。
一个电子邮件地址通常需要由三个部分组成,用符号<@>和点<。>分隔
第一部分通常是某种forms的用户名,但也可以是一个函数(sales,hr),或者任何其他的东西(只要你的MTA知道该怎么做),第二部分紧跟着<@ >是域名,点<。>是TLD或顶级域之后的最后一个部分。 由于明显的原因,这些不能是任意的。
[email protected]
MTA不知道在哪里发送邮件地址root @ empty。
当MTA知道如何处理特定格式的电子邮件地址时,这可能在本地系统上工作,但是一旦离开本地系统,它就会被拒绝,并且会返回一个错误。
你需要做的是将eximconfiguration为在本地发送格式为name @ example(其中example是你自己的域名)的电子邮件,而不是试图发送它们,或者configurationexim以正确的格式名称重写这些电子邮件.com然后发送出去。
当你运行dpkg-reconfigure exim4-config的时候,有一个问题是邮件被接受的其他目的地:如果你添加了你希望系统成为最终目的地的域名,你应该做什么。 但是你可以做一些手工编辑的configuration文件。
既然你说你实际上收到电子邮件,并从远程MTA得到一个错误,你可能只需重新configurationexim不发送这样的电子邮件。 以上我认为可能照顾那自动地。
另请参阅:
http://tools.ietf.org/html/rfc5321
http://tools.ietf.org/html/rfc2821
更新:从您更新的问题来看,您似乎需要以[email protected]的forms使用电子邮件地址,或在Google应用程序中注册server.example.com 。 我忘了如何做到这一点,但我知道这是可以configuration的。 当然,请确保server.example.com的DNS设置正确。
关于你最后的评论,你是否尝试添加以下行到/ etc / aliases中
root:[email protected]
这会自动告诉eximredirect发往该系统的根帐户的邮件,以发送到[email protected](或者甚至如果在别名中configuration了[email protected])。
您需要configurationexim以将您的域添加到不合格的发件人和收件人地址(“不合格”,意思是“还没有域”)。
在纯粹的exim,这将是“qualify_domain”。 由于您使用的是debconf,因此我认为将/ etc / mailname的内容设置为您的域名应该可行。
那么你有问题,发送邮件到外面的用户的用户名应该对应于真实的地址。 你的“根”用户将发送邮件,你想要去哪里? 通常的解决scheme是说服务器只接收邮件(myserver.example.com)。 这样系统生成的邮件停留在服务器上。 要将邮件发送到外部,请使用MUA或MTA强制源电子邮件地址。 对于Exim(MTA),它被称为发件人重写 ,你想要的东西
begin rewrite ^mylogin@myserver$ my@email SFf`
我想出了根本原因,这要归功于@ aseq上面的答案 ,但是我想出了如何让它不会从Google Postmaster发送额外的邮件消息。
我在Debian上使用Exim4build立GMail身份validation教程 ,并要求我“ mail sent by smarthost; received via SMTP or fetchmail mail sent by smarthost; received via SMTP or fetchmail “这导致Exim希望本地帐户也发送邮件,但我想要的只是邮件发送到我的主要电子邮件。
这是我应该更加意识到的XY问题的典型例子。 我通过将exim4设置mail sent by smarthost; no local mail来解决了潜在的问题mail sent by smarthost; no local mail 在dpkg-reconfigure exim4-config的第一个屏幕上mail sent by smarthost; no local mail 。 重启Exim4的服务,邮件正常工作!