【问题标题】:chef server doesn't send mails厨师服务器不发送邮件
【发布时间】:2016-04-27 15:15:00
【问题描述】:

我在 CentOS 6.6 上安装了 Chef-server 12。当我想在页面https://ip/password-reset/new 上提醒我用户密码时,我没有收到任何邮件 在 exim 日志中我看到了

2016-04-27 14:52:17 1avQp7-0001iP-0U <= <> R=1avQp6-0001iO-Om U=exim P=local S=1611
2016-04-27 14:52:17 1avQp7-0001iP-0U => opscode <opscode@non_resorvable_fqdn> R=localuser T=local_delivery
2016-04-27 14:52:17 1avQp7-0001iP-0U Completed
2016-04-27 14:53:23 Start queue run: pid=6616
2016-04-27 14:53:23 End queue run: pid=6616

但是当我用 xmail 发送邮件时,一切都很好

2016-04-27 14:45:05 1avQi9-0001g2-DL <= user@non_resorvable_fqdn U=ec2-user P=local S=611
2016-04-27 14:45:05 1avQi9-0001g2-DL gmail-smtp-in.l.google.com [2a00:1450:4013:c00::1a] Network is unreachable
2016-04-27 14:45:08 1avQi9-0001g2-DL => user2@gmail.com R=dnslookup T=remote_smtp H=gmail-smtp-in.l.google.com [173.194.65.27] X=UNKNOWN:ECDHE-RSA-AES128-GCM-SHA256:128
2016-04-27 14:45:08 1avQi9-0001g2-DL Completed
2016-04-27 14:49:44 1avQme-0001hE-4B <= <> R=1avQme-0001hD-2t U=exim P=local S=1611
2016-04-27 14:49:44 1avQme-0001hE-4B => opscode <opscode@non_resorvable_fqdn> R=localuser T=local_delivery
2016-04-27 14:49:44 1avQme-0001hE-4B Completed

我收到了这封邮件

【问题讨论】:

    标签: email chef-infra centos6 exim


    【解决方案1】:

    检查您的厨师日志和 MTA(exim、postfix 等)日志和配置。就我而言,在安装 Chef-manage 后,在 Web UI 上单击日志中的“重置密码”后 /var/log/chef-manage/web/current 我发现:

    [date] INFO -- :   Rendered password_reset_mailer/password_reset.text.erb (1.2ms)
    [date] sh: 1: /usr/sbin/sendmail: not found
    

    我安装了 postfix,现在邮件可以正常发送了。 所以我认为在你的情况下 exim 是问题。

    【讨论】:

    • 感谢我安装了 postfix 并关闭了 SELinux,它工作正常,我必须找到合适的 selinux 布尔值。 (我也不得不关掉 exim)
    【解决方案2】:

    Chef 在发送邮件时使用 sendmail -t 参数。这个选项在 sendmail 的不同实现中会有不同的解释。

    来自 exim 手册页:

    -t

    当 Exim 在其标准输入上接收本地生成的非 SMTP 邮件时,-t 选项会导致从邮件的 To:、Cc: 和 Bcc: 标题行获取邮件的收件人而不是来自命令参数。在进行任何重写之前提取地址,然后删除 Bcc: 标题行(如果存在)。

    如果命令有任何参数,它们会指定不将消息传递到的地址。也就是说,参数地址从从标头获得的收件人列表中删除。这与 Smail 3 兼容,并且符合多个版本的 Sendmail 的记录行为,如许多操作系统(例如 Solaris 8、IRIX 6.5、HP-UX 11)的手册页中所述。但是,某些版本的 Sendmail 会将参数地址添加到从标头获得的地址中,而 O'Reilly Sendmail 的书就是这样记录的。通过设置选项extract_addresses_remove_arguments false,可以使Exim 添加参数地址而不是减去它们。

    所以要让 exim 与 Chef 服务器一起工作,您需要添加:

    extract_addresses_remove_arguments = false

    到您的 exim 配置的 main/02_exim4-config_options 部分

    如果您选择了使用单个配置文件的选项,则您的配置位于:

    /etc/exim4/exim4.conf.template(在 debian 系统上)

    然后重新启动 exim,它应该可以工作了。

    另请参阅:https://github.com/mikel/mail/issues/70

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多