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 / 问题 / 847138
Accepted
Chazy Chaz
Chazy Chaz
Asked: 2017-04-29 04:45:28 +0800 CST2017-04-29 04:45:28 +0800 CST 2017-04-29 04:45:28 +0800 CST

后缀:milter-reject:END-OF-MESSAGE from ...:4.7.1 服务不可用(opendkim)

  • 772

我将 OpenDkim 配置为使用 postfix,当我尝试发送邮件时出现以下错误:

postfix/cleanup[11542]: 40F271A291A: milter-reject: END-OF-MESSAGE from ***[***]: 4.7.1 Service unavailable - try again later; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<[192.168.1.10]>

我已将 opendkim 配置为使用 unix 套接字,并且它正在工作:

[chazy@mail ~]$ sudo netstat -nalp | grep dkim
unix  2      [ ACC ]     STREAM     LISTENING     144135   11267/opendkim       /run/opendkim/opendkim.sock
unix  3      [ ]         STREAM     CONNECTED     147626   11267/opendkim       /run/opendkim/opendkim.sock
unix  2      [ ]         DGRAM                    144137   11267/opendkim

Opendkim 由它自己的用户启动,正如 Arch wiki 所建议的(以及其他安全建议)。这些文件夹也归 opendkim:mail 所有。

我对所有域都使用相同的选择器和签名密钥,这有问题吗?

后缀配置如下:

# DKIM
milter_default_action = accept
smtpd_milters = unix:/run/opendkim/opendkim.sock
non_smtpd_milters = unix:/run/opendkim/opendkim.sock

目前没有安装反垃圾邮件服务,只是一个基本的 postfix/dovecot/opendkim 配置来测试服务器。

Opendkim 配置:

# /etc/opendkim/opendkim.conf

BaseDirectory           /var/lib/opendkim
Canonicalization        relaxed/simple
Domain                  domain1.com domain2.com
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyFile                 /etc/opendkim/201704.private
KeyTable                refile:/etc/opendkim/KeyTable
Selector                201704
SigningTable            refile:/etc/opendkim/SigningTable
Socket                  local:/run/opendkim/opendkim.sock
Syslog                  Yes
TemporaryDirectory      /run/opendkim
UMask                   002
UserID                  opendkim:mail

TrustedHosts 配置:

# /etc/opendkim/TrustedHosts

# Trusted Hosts List
127.0.0.1
::1
x.x.x.x # Server IP
mail.maindomain.com

# Domains
maindomain.com
domain2.com
postfix
  • 4 4 个回答
  • 18946 Views

4 个回答

  • Voted
  1. Best Answer
    Chazy Chaz
    2017-04-29T06:51:24+08:002017-04-29T06:51:24+08:00

    就我而言,问题在于签名密钥文件具有root所有者,因此这样做:

    sudo chown opendkim:mail /etc/opendkim/selector.private
    

    修复了问题。

    如果这不是你的问题,别忘了看看期刊,两者都有!postfix 和 opendkim (我忘了查找 opendkim 并且有错误):

    journalctl --follow --unit postfix.service --unit opendkim.service
    
    • 7
  2. anark10n
    2017-07-12T12:37:35+08:002017-07-12T12:37:35+08:00

    尝试从您用作签名表的文件中删除“*@”是否有效。这就是造成我的原因,即使我有

    SigningTable      refile:<directory to signing table file>
    

    在我的 opendkim.conf 中。

    • 1
  3. le_top
    2021-09-25T10:46:22+08:002021-09-25T10:46:22+08:00

    就我而言,传出的消息太大了。

    解决问题后,我得到:

    Sep 24 20:05:20 va1my postfix/smtp[23682]: C553B48F30: to=<XXX>, relay=XXXXX:25, delay=2979299, delays=2979298/0.01/0.13/0.72, dsn=5.2.3, status=bounced (host XXXXXX said: 552-5.2.3 Your message exceeded message size limits. Please visit 552-5.2.3  XXXX  to view our size 552 5.2.3 guidelines.  (in reply to end of DATA command))
    

    为了解决这个问题,我添加了/etc/opendkim.conf:

    MaximumHeaders 0
    

    并重新启动 opendkim service opendkim restart (或systemctl restart opendkim)。

    设置 256k 的限制没有帮助,因为标头更大,所以我设置了 0 禁用限制。随着根本原因消失,我可以再次评论该行。

    旁注,真正的原因

    标头可能太大,因为没有添加标头就将日志的输出通过管道传输到 sendmail。

    我是这样实现的,但没有意识到这封邮件被卡住了:

    grep FILTER FILE | sendmail [email protected]
    

    为了使用“sendmail”正确编写脚本,我做了以下事情:

    #!/bin/bash
    # TMP_FILE and SUBJECT are set somewhere in the script.
    
    # Prepend the $SUBJECT to the script output sent by mail.
    
      ( echo "Subject: $SUBJECT" \
        && cat $TMP_FILE \
      ) | \
      /usr/sbin/sendmail $1
    
    • 0
  4. F1Linux
    2022-08-11T15:01:55+08:002022-08-11T15:01:55+08:00

    问题:

    还有另一件事会导致我刚刚发现的这个错误,这让我非常痛苦:

    BaseDirectory          /run/opendkim
    

    您会认为您将 opendkim 指向 PID 所在的位置...

    解决方案:

    #BaseDirectory          /run/opendkim
    

    这就是指令的实际作用以及为什么服务被呈现“ milter-reject: END-OF-MESSAGE from ...: 4.7.1 服务不可用”

    基本目录(字符串)

    如果设置,则指示过滤器在执行任何其他操作之前使用 chdir(2) 更改到指定目录。这意味着可以相对于该目录指定配置文件中其他地方引用的任何文件。它对于安排将任何故障转储保存到特定位置也很有用。

    参考:http://www.opendkim.org/opendkim.conf.5.html

    我一评论它,一切就开始工作了。

    这是我使用的默认值,并且看到其他样本配置使用此值,因此最初没有给予它权重并寻求与错误权限相关的解决方案。

    确保您对该指令具有正确的值,否则您将花费​​数小时追逐您的尾巴。至少可以说,日志记录没有帮助。

    • 0

相关问题

  • Postfix 在特定端口上接受邮件

  • 让 Postfix 以两种方式处理垃圾邮件

  • Postfix 或 exim:自动/程序化和转发电子邮件设置

  • 后缀电子邮件地址

  • 什么是最好的开源电子邮件解决方案包

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