我在展望中设定了一条规则
到达后应用此规则 " XYZ" 在主题中并将其移至 " buildme"
文件夹" buildme"在
创建为数据文件C:\ Users \用户身份识别码\应用程序数据\本地\微软\展望\ builme.pst
在项目的Jenkin中,我创建了构建触发器,如下所示:
[FSTrigger] - 监控文件
文件路径: C:\ Users \ myid \ AppData \ Local \ Microsoft \ Outlook \ builme.pst
时间表:55 * * * 1-5
我发送了一封电子邮件,其中包含" xyz"在主题行。 然后电子邮件被转移到" buildme"文件夹,因此文件C:\ Users \ myid \ AppData \ Local \ Microsoft \ Outlook \ builme.pst得到更新,比如在" 2016年3月24日上午11:24"。
上午11:55,构建被正确触发。
然而,在下午12:55,意外地再次触发了另一个版本,尽管没有发送新电子邮件。这种情况每小时都会发生。
我做错了什么?
答案 0 :(得分:1)
Outlook可能以某种方式触及了该文件,修改了一些导致FSTrigger启动构建的时间戳。
为了健壮,我建议不要依赖于监视outlook文件夹文件的变化,因为它可能会意外地改变。而是修改规则以直接触发jenkins服务器上的构建作业。
即。伪医疗:IF subject CONTAINS keyword ACCESS jenkinsurl_that_starts_build
如何基于Outlook规则运行脚本似乎已经布局here和 有关如何通过jenkins网址上的http请求触发构建的信息,请参阅here
您甚至可以在将来扩展它以将参数从您的电子邮件传递到您的构建,因为这些也可以通过URL访问进行设置。有关此here的更多信息,使用参数启动构建
答案 1 :(得分:1)
我将规则更改为:
apply this rule after arrives
with "xyz" in the subject
run projetcs.ThisOutlookSession.WriteStringToFile
和VBA脚本:
Sub WriteStringToFile1(MyMail As MailItem)
Const FILEPATH = "c:\buildtrigger\testtest.txt"
Dim strSubject As String
Dim strSender As String
Dim strText As String
Dim strID As String
Dim objMail As Outlook.MailItem
strID = MyMail.EntryID
Set objMail = Application.Session.GetItemFromID(strID)
strSubject = objMail.Subject
strSender = objMail.SenderName
Open FILEPATH For Output As 1
Print #1, "SET XYZ = " & strSubject & ";" & strSender & "--" & Now
Close #1
End Sub
这个VBA脚本会将一行写入testtest.txt。
在Jenkins中,创建一个构建触发器:
[FSTrigger] - Monitor folder
Path = c:\buildtrigger
Includes = testtest.txt
Exclude check lastModification date = true
Exclude check content = false
Exclude check fewer or more files = true
schedule: * * * * 1-5
在主题中发送包含xyz的电子邮件,将成功触发构建,并且在未收到电子邮件时未触发构建。
作为旁注,看起来FSTrigger修改了文件的时间戳,而不是Outlook或Windows。