我在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();
答案 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选项 不信任的用户设置信封发件人。
始终信任以root用户身份运行的进程或Exim用户。其他 受信任的用户由trusted_users或trusted_groups定义 选项。在缺少-f的情况下,或者如果调用者不信任,则 本地消息的发送者被设置为呼叫者的登录名 默认限定域。