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
    • 最新
    • 标签
主页 / unix / 问题 / 437761
Accepted
Martin Ueding
Martin Ueding
Asked: 2018-04-15 07:05:58 +0800 CST2018-04-15 07:05:58 +0800 CST 2018-04-15 07:05:58 +0800 CST

邮件递送通知已正确递送,实际邮件未正确递送

  • 772

我已将我们部门的 Debian 工作站配置为使用 Exim 4 进行邮件传递。我还创建了一个别名,以便我收到所有root电子邮件。Exim 4 配置(通过 Ansible 和 debconf)具有以下设置:

exim4_dc_eximconfig_configtype: internet
exim4_dc_readhost: …
exim4_dc_smarthost: …
exim4_dc_use_split_config: 'true'
exim4_dc_hide_mailname: 'true'
exim4_dc_mailname_in_oh: 'true'

在每台机器上,我都可以mailx用来发送电子邮件root,它会很好地显示在我的收件箱中。一些cron 作业的执行也被正确地发送给我。

但是,大多数 cron 作业都无法发送电子邮件,而是收到以下电子邮件:

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  ueding@…
    (generated from root@echo)



Reporting-MTA: dns; echo

Action: failed
Final-Recipient: rfc822;ueding@…
Status: 5.0.0



Return-path: <root@echo>
Received: from root by echo with local (Exim 4.89)
    (envelope-from <root@echo>)
    id 1f7Jqz-0007jU-7y
    for root@echo; Sat, 14 Apr 2018 14:00:25 +0200
From: root@echo (Cron Daemon)
To: root@echo
Subject: Cron <root@echo> ansible-pull -U [email protected]:…/….git --private-key /root/.ssh/ansible_pull localhost.yml
MIME-Version: 1.0
Content-Type: text/plain; charset=US-ASCII
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <E1f7Jqz-0007jU-7y@echo>
Date: Sat, 14 Apr 2018 14:00:25 +0200
X-Exim-DSN-Information: Due to administrative limits only headers are returned

我真的不明白为什么会这样。要么所有电子邮件传递都失败,要么几乎全部成功。来自 cron 的电子邮件如何在大多数工作站上失败但在其他工作站上成功,而交付失败的电子邮件总是通过?


机器上有关 exim 的系统日志 echo 非常稀疏:

# journalctl -u exim4.service 
-- Logs begin at Tue 2018-03-06 18:35:11 CET, end at Sat 2018-04-14 17:13:08 CEST. --
Apr 02 18:00:30 echo systemd[1]: Starting LSB: exim Mail Transport Agent...
Apr 02 18:01:23 echo exim4[27433]: Starting MTA: exim4.
Apr 02 18:01:23 echo systemd[1]: Started LSB: exim Mail Transport Agent.

调查在一个银盘/var/log/exim4/mainlog上提供解释:

2018-04-14 14:00:25 1f7Jqz-0007jU-7y <= root@echo U=root P=local S=7948
2018-04-14 14:00:25 1f7Jqz-0007jU-7y ** ueding@… <root@echo> R=dnslookup T=remote_smtp: message is too big (transport limit = 1)
2018-04-14 14:00:25 1f7Jqz-0007jW-BM <= <> R=1f7Jqz-0007jU-7y U=Debian-exim P=local S=1856
2018-04-14 14:00:25 1f7Jqz-0007jU-7y Completed
2018-04-14 14:00:26 1f7Jqz-0007jW-BM => ueding@… <root@echo> R=dnslookup T=remote_smtp H=… […] X=TLS1.0:RSA_AES_256_CBC_SHA1:256 CV=yes DN="C=DE,ST=…,L=…,O=…,OU=…,CN=…" C="250 2.0.0 Ok: queued as 6FCA1155FC32"
2018-04-14 14:00:26 1f7Jqz-0007jW-BM Completed

错误可能是“消息太大(传输限制 = 1)”。但这仍然没有多大意义,因为我有 30 个相同配置的工作站,其中一些工作站的消息连续几天通过。每台机器的消息长度应该相同(主机名的长度除外),并且当前接收电子邮件的两台机器具有更长的名称。

email exim
  • 2 2 个回答
  • 3606 Views

2 个回答

  • Voted
  1. dev_null
    2019-01-18T01:43:15+08:002019-01-18T01:43:15+08:00

    日志中的示例:

    [email protected] R=smarthost T=remote_smtp_smarthost:消息太大(传输限制= 1)

    这意味着已达到 998 个字符的最大 LINE 限制

    解决方案:

    在“/etc/exim4/exim4.conf.localmacros”中添加以下行:

    IGNORE_SMTP_LINE_LENGTH_LIMIT = 1
    

    然后重新启动 exim4。

    • 12
  2. Best Answer
    roaima
    2018-04-15T08:39:35+08:002018-04-15T08:39:35+08:00

    我认为您已经遇到了这个报告的错误exim4: bogus reject response on overlong lines。

    它实际上是指太长的行,而不是消息本身。在将消息fmt -s传递给exim4.

    • 2

相关问题

  • Mutt abook 空查询

  • 使用 sendmail -t 处理非标准 SMTP 端口

  • 如何使用 Sendmail 添加附件(选项有限)?

  • 是否可以在 Maildir 模式下为 IMAP 服务器实现“安全删除”?

  • 接收有关全新 Debian 的电子邮件

Sidebar

Stats

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

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    ssh 无法协商:“找不到匹配的密码”,正在拒绝 cbc

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    如何卸载内核模块“nvidia-drm”?

    • 13 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add 返回:“连接代理时出错:没有这样的文件或目录” 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya 为什么 Linux 使用 LF 作为换行符? 2017-12-20 05:48:21 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

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

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve