Xcode Server Bot不发送电子邮件报告

标签 xcode email postfix-mta xcode-server xcode-bots

我在本地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,并设置了自己的fromreply-toTo字段,并勾选了每个Notify On
enter image description here
我使用以下命令监视smtpsmtp进程
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 postfixpostfix 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
在最后阶段,应该会收到这样的电子邮件:
enter image description here

最终编辑:
我的第一个和Edit1答案不适用于PO。
有一些旧线程表明,对于不同的MacOS版本,这可能是一个错误。在后缀方面,Big Sur似乎是一个问题。
Thread1
Thread2

关于Xcode Server Bot不发送电子邮件报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66012056/

相关文章:

ios - 代码 8 : Auto layout Leading & Trailing

iphone - 从网络获取图像到 UIImageView 不起作用

android - 如何在 Android 上使用 gmail 客户端 API 发送带有大附件的电子邮件

linux - 未送达的邮件退回给发件人-域不同的目的地

gitlab - 如何在运行 WHM 的 CentOS 6 上安装 GitLab?

iphone - UIButton 导致 UITextField 字删除

iOS 本地化搞乱了 UI

php - 本地主机和 "stream_socket_enable_crypto(): SSL operation failed with code 1"

java - 有人知道 Java 的邮件 (SMTP) 传递库吗?

email - 检查虚拟邮件用户后的 Postfix PolicyD v2 (cluebringer)