phing:通过电子邮件发送完整的日志?

时间:2009-09-12 11:19:45

标签: php email build-automation phing

我正在使用phing进行项目的自动构建过程,并且想知道:如何通过电子邮件获取完整日志?


当我通过命令行启动phing时,会显示构建日志;我想要:

  • 通过电子邮件发送,
  • 给几个收件人,
  • 构建是成功还是失败
  • 理想情况下:邮件主题告知构建是成功还是失败
  • 理想情况下:某种HTML邮件,格式化,颜色,......会很好

我想将phing的输出汇总到mail命令,但我想要一个适用于Linux和Windows的解决方案,并且不需要安装任何额外的软件...

有没有人有想法?


作为旁注:我考虑过在构建结束时添加某种“报告”目标,但是:

  • 仅在所有先前目标未失败时启动
  • 我看不到如何获取完整日志

5 个答案:

答案 0 :(得分:4)

好主意;刚添加了一张票来实现这个@ http://phing.info/trac/ticket/539

答案 1 :(得分:3)

我想你可以编写一个自定义的Phing构建监听器/记录器来处理你描述的用例。看看菲利普诺顿的这篇优秀博客post,让你前进。

答案 2 :(得分:0)

假设您能够为您有权访问的Linux服务器编写脚本,则可以在不安装其他软件的情况下执行此操作。

让php脚本使用exec()或system()命令获取完整日志。使用curl将此作为http post数据发送到您可以访问的Linux服务器上的远程脚本。

在服务器上,您有权编写脚本以接受http post变量并将内容邮寄到您的电子邮件地址。而且你可能会想“哦,不,我可以通过电子邮件向我发送电子邮件!”如果他们知道您的地址,或者您有一个网络联系表格......同样的交易。这是一个解决方案;) 如果安全问题是通过https发送的。

答案 3 :(得分:0)

我们用......像这样包裹在php脚本中。

exec('phing' . $target . ' -f ' . $buildfile . ' | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"', $out); //remove bash color
$info = implode("\n", $out);
$subj = sprintf('Deployed %s', $catalogInfo['name']);
mail($data->email, $subj, $info); 

工作正常。

答案 4 :(得分:-2)

你看过PEAR mail packages吗?