Gitlab和Exim在发送电子邮件时与'地址'冲突

时间:2016-12-21 21:08:01

标签: gitlab exim

我在CentOS 7上安装了Gitlab 8.15和Exim 4.84

每当Gitlab发送消息时,它应来自'gitlab@mydomain.nl',它在2016-12-21 21:50:02 cwd=/ 6 args: /usr/sbin/sendmail -i -f gitlab@mydomain.nl -- mypersonal@gmail.com 2016-12-21 21:50:02 1cJnpq-0001ZR-NG <= git@vps.mydomain.nl U=git P=local S=3859 id=585aeafaad130_175126f0b9c43854@vps.mydomain.nl.mail T="Reset password instructions" from <git@vps.mydomain.nl> for mypersonal@gmail.com 中正确设置。

如果我查看日志,我会看到以下内容:

gitlab@mydomain.nl

请注意,在这两行之间,起始地址从git@vps.mydomain.nl更改为user@FQDN,基于vps.mydomain.nl

我的外部SMTP服务器然后在mydomain.nl上执行DKIM和SPF查找,而不是begin routers mysmtphost_email: driver = manualroute domains = ! +local_domains ignore_target_hosts = 127.0.0.0/8 transport = mysmtphost_relay route_list = * vps.mysmtphost.email::587 no_more (...) begin transports mysmtphost_relay: driver = smtp port = 587 hosts_require_auth = <; $host_address hosts_require_tls = <; $host_address ,这会失败,邮件也会被拒绝。

我不确定这种变化发生在哪里以及我应该如何解决这个问题。这是Gitlab方面的东西还是Exim方面的东西?

我的exim配置中的相关部分:

Graphics g = Graphics.FromImage(myBitmap);
g.DrawImage();

1 个答案:

答案 0 :(得分:1)

刚发现用户git不属于trusted_users文件中exim.conf指令的一部分。我将其更改为包括用户如下: trusted_users = mail:apache:passenger:git

我得出了这个结论,因为由用户passenger运行的其他Rails应用程序发送的邮件正在按照from地址的指定正确发送。然后我注意到passenger是该指令的一部分而git没有。

从Exim文档:

  

始终允许受信任的用户使用-f选项或前导   “从”行指定消息的信封发件人   通过本地接口传递给Exim(请参阅-bm和-f选项   下面)。有关允许的方法,请参阅untrusted_set_sender选项   不信任的用户设置信封发件人。

http://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_exim_command_line.html#SECTtrustedadmin

  

始终信任以root用户身份运行的进程或Exim用户。其他   受信任的用户由trusted_users或trusted_groups定义   选项。在缺少-f的情况下,或者如果调用者不信任,则   本地消息的发送者被设置为呼叫者的登录名   默认限定域。