我在我的本地iMac上运行Xcode服务器机器人,但邮件通知未能发送。
我已经跟随了许多教程,并完成了postfix
的设置和工作。我可以使用命令成功发送电子邮件。
sudo echo "Test sending email from Postfix" | mail -s "Test Postfix" xxxxxx@me.com
我已经收到了我的电子邮件。
在 Xcode
> Preferences
> Server & Bots
> Mail
中,根据所有教程的建议,我把所有内容都留空了。
对于我的 bot,在 Triggers
下,我设置了一个 定期电子邮件报告
,Schedule
设置为 每次集成后
,并设置了我的 from
、reply-to
和 To
字段,并选中了每个 Notify On
选框。
我使用以下命令监视 smtp
和 smtp
进程:
sudo log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
当我使用上述测试发送电子邮件时,我会得到一个显示日志的行。
然而,当我的Xcode Bot完成时,我什么也没有得到。 Bot日志显示
Feb 2 13:47:16 [596] <Info>: Executing trigger 'Periodic Email Report'
Feb 2 13:47:16 [596] <Info>: Executing trigger 'New Issue Email'
所以电子邮件报告没有触发任何类型的smtp
。它甚至是否使用了postfix?我能记录其他内容以查看是否完全命中了postfix
吗?
编辑------
我找到了一些sendmail
日志,似乎显示Xcode没有使用postdrop
的正确权限:
kernel Sandbox: sendmail(48548) deny(1) forbidden-exec-sugid
sendmail fatal: execvp /usr/sbin/postdrop: Operation not permitted
sendmail warning: command "/usr/sbin/postdrop -r" exited with status 1
sendmail fatal: xcode@<redacted>.com(450): unable to execute /usr/sbin/postdrop -r: Undefined error: 0
根据我在网上的查找,我的postdrop
权限似乎是正确的:
-rwxr-xr-x 1 root wheel 570448 1 Jan 2020 postalias
-rwxr-xr-x 1 root wheel 466416 1 Jan 2020 postcat
-rwxr-xr-x 1 root wheel 823488 1 Jan 2020 postconf
-rwxr-sr-x 1 root _postdrop 588624 1 Jan 2020 postdrop
-rwxr-xr-x 1 root wheel 431904 1 Jan 2020 postfix
-rwxr-xr-x 1 root wheel 432032 1 Jan 2020 postkick
-rwxr-xr-x 1 root wheel 449424 1 Jan 2020 postlock
-rwxr-xr-x 1 root wheel 431872 1 Jan 2020 postlog
-rwxr-xr-x 1 root wheel 569632 1 Jan 2020 postmap
-rwxr-xr-x 1 root wheel 465872 1 Jan 2020 postmulti
-rwxr-sr-x 1 root _postdrop 588448 1 Jan 2020 postqueue
-rwxr-xr-x 1 root wheel 466784 1 Jan 2020 postsuper
我在/etc/group
文件中有一个_postdrop
用户组:
_postdrop:*:28:
我是不是理解错了?sendmail
用户需要使用postdrop
的权限吗?
编辑 2 -------
看起来这可能是由于Big Sur
使根分区变为只读所致。sudo postfix set-permissions
无法正常工作。
那么现在问题是,如何安装/使用其他方法让Xcode服务器发送电子邮件?
smtp
日志,但是Xcode日志显示正在执行电子邮件触发器,但是没有任何内容通过smtp传递。 - Darren