我在本地iMac上运行Xcode Server Bots,但未发送电子邮件通知。
我遵循了许多教程,并设置了postfix
并可以正常工作。我可以使用以下命令成功发送电子邮件
sudo echo "Test sending email from Postfix" | mail -s "Test Postfix" xxxxxx@me.com
并收到我的电子邮件。在
Xcode
> Preferences
> Server & Bots
> Mail
下,根据所有教程,我将所有内容留空。对于我的机器人,在
Triggers
下,我有一个Periodic Email Report
,其中Schedule
设置为After each integration
,并设置了自己的from
,reply-to
和To
字段,并勾选了每个Notify On
。我使用以下命令监视
smtp
和smtp
进程sudo log stream --predicate '(process == "smtpd") || (process == "smtp")' --info
当我使用上述测试发送电子邮件时,会显示一条日志行。但是,当我的Xcode 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
吗?编辑 - - -
我发现一些
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
我的_postdrop
文件中的/etc/group
用户为:_postdrop:*:28:
还是我读错了? sendmail
用户是否需要使用postdrop
的权限?编辑2 -------
看来
Big Sur
可能会使根分区为只读,这可能是一个问题。 sudo postfix set-permissions
无法做到这一点。所以我想现在的问题是,如何为Xcode Server安装/使用其他方法来发送电子邮件?
最佳答案
您的过程完全正确,但只有一个异常(exception)。正如您指出并记录的那样,权限存在问题。
通过rpm -qV postfix
或postfix check
完整日志共享可以很好地解决问题,但是您已经有了一些声明Xcode没有权限的日志。
您也可以使用电子邮件漫游器找出“在Xcode报告导航器中管理机器人”。这是Apple Document。
我认为这将设置权限:
sudo mkdir -p /Library/Server/Mail/Data/Spool
sudo /usr/sbin/postfix set-permissions
sudo /usr/sbin/postfix start
运行此命令以清除postprop进行仔细检查后$ sudo killall postdrop
编辑1:
否则,如果仍然无法运行,请尝试使用此命令
sudo /etc/init.d/postfix stop
sudo killall -9 postdrop
设置权限:sudo chown postfix:postdrop /var/spool/postfix/maildrop
sudo chmod 1730 /var/spool/postfix/maildrop
重新启动后缀:sudo /etc/init.d/postfix start
在最后阶段,应该会收到这样的电子邮件:最终编辑:
我的第一个和Edit1答案不适用于PO。
有一些旧线程表明,对于不同的MacOS版本,这可能是一个错误。在后缀方面,Big Sur似乎是一个问题。
Thread1
Thread2
关于Xcode Server Bot不发送电子邮件报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66012056/