我在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
我收到了这封邮件
答案 0 :(得分:1)
检查您的厨师日志和MTA(exim,postfix等)日志和配置。在我的情况下,安装chef-manage后,在log / var / log / chef-manage / web / current 中单击“重置密码”后在Web UI上找到:
[date] INFO -- : Rendered password_reset_mailer/password_reset.text.erb (1.2ms)
[date] sh: 1: /usr/sbin/sendmail: not found
我安装了postfix,现在邮件会按原样发送。 所以我认为在你的情况下exim是问题。
答案 1 :(得分:0)
Chef在发送邮件时使用sendmail -t
参数。在sendmail的各种实现中,此选项的解释方式不同。
从exim手册页:
-t
当Exim在其标准输入上收到本地生成的非SMTP邮件时,-t选项会使邮件的收件人从邮件中的收件人:,抄送:和密送:标题行中获取而不是从命令参数。在进行任何重写之前提取地址,然后删除Bcc:标题行(如果存在)。
如果命令有任何参数,则它们指定不向其传递消息的地址。也就是说,参数地址将从从标题中获取的收件人列表中删除。这与Smail 3兼容,并且符合若干版本的Sendmail的记录行为,如许多操作系统(例如Solaris 8,IRIX 6.5,HP-UX 11)的手册页所述。但是,某些版本的Sendmail会将参数地址添加到从标题中获取的地址,而O'Reilly Sendmail书籍会以这种方式记录。 Exim可以通过设置选项extract_addresses_remove_arguments false来添加参数地址而不是减去它们。
因此,要使用Chef服务器进行exim工作,请添加:
extract_addresses_remove_arguments = false
到exim配置的main/02_exim4-config_options
部分
如果您选择使用单个配置文件,则配置位于:
/etc/exim4/exim4.conf.template
(关于debian系统)
然后只需重启exim就可以了。