我正在本地iMac上运行Xcode Server Bots,但电子邮件通知没有发送。
我已经遵循了许多教程,并有postfix
的设置和工作。我可以成功地发送电子邮件使用命令
sudo echo "Test sending email from Postfix" | mail -s "Test Postfix" xxxxxx@me.com
我的电子邮件被接收。
在Xcode
〉Preferences
〉Server & Bots
〉Mail
下,我按照所有教程将所有内容留空。
对于我的Bot,在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机器人程序完成时,我什么都没有得到。
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服务器发送电子邮件的不同方法?
4条答案
按热度按时间ao218c7q1#
经过大量的研究,在其他地方提出问题和尝试和错误,它似乎只是不会工作。在这条线上的某个地方,Xcode服务器没有自动发送电子邮件的正确权限。这可能是Xcode服务器的一个错误,甚至大苏尔。
sendmail
本身是一个相当野兽设置,但如果你已经得到了它的工作从命令行建议在许多教程,那么有一种方法,你可以得到电子邮件从Xcode服务器。根据苹果论坛上一位会员的建议,使用
Post Integration Script
似乎可以直接调用sendmail
。因此,我想出了以下脚本:**将其添加为集成后脚本:**将路径更改为保存以下2个文件的位置。
电子邮件.html
mail.sh根据需要编辑4个变量。您可能需要对该文件进行
chmod +x mail.sh
。您将收到如下电子邮件:
如果有人知道他,我们可以添加实际的失败原因或错误,这将是可怕的。有一个变量列表,我们可以使用here,我认为它可能涉及到查看实际的构建路径。
vs91vp4v2#
你的过程是完全正确的,但只有一个例外。正如你所指出的,日志说,有一个问题的权限。
这将是很好的共享
rpm -qV postfix
或postfix check
完整的日志,以找出问题的深刻,但你已经有一些日志,其中声明Xcode没有权限。你也可以使用你的电子邮件机器人来弄清楚“在Xcode报告导航器中管理机器人”。这里是苹果文档。
我想这样就可以设置权限了:
在运行此命令以清除postprop后,进行双重检查
EDIT1:或者,如果仍然不起作用,最好尝试使用此命令
设置权限:
重新启动后缀:
在最后阶段,应该是收到这样一封电子邮件:
最终编辑:
我的第一个答案和Edit1答案不适用于PO。
有一些旧的线程表明,这可能是一个错误的不同MacOS版本。这似乎是一个问题,与大苏尔在后缀方面。
Thread1
Thread2
mbyulnm03#
我对Xcode不太熟悉,但你描述的问题似乎是Xcode应用程序和Postfix SMTP服务器之间的通信问题。我会尝试以下方法:
希望通过这样做,您能够看到您配置的邮件更新是否正在从Xcode发送到您的Postfix服务器。
woobm2wo4#
Xcode服务器已弃用。最好移到Jenkins。