У меня нет опыта работы с jenkins, но вы можете выполнить это с помощью C#, используя библиотеку под названием MailKit. Более конкретно, вы можете заключить код, который выполняет поиск ключевого слова в теме письма, в рамках цикла с таймером, который повторяется каждые 5 минут или около того.
Вам также необходимо удалить соответствующие сообщения или использовать какой-то журнал, чтобы избежать совпадений.
Вы также можете использовать этот код, чтобы запустить exe-файл и ждать его, чтобы закончить перед отправкой результатов (которые вы можете сделать с MailKit):
Process.Start();
Process.WaitForExit();
Что-то вроде этого:
using System.Diagnostics;
using System.Net.Mail;
using MailKit;
using MailKit.Search;
using MailKit.Net.Imap;
void test()
{
const int period = 1000 * 60 * 5; //5 minutes
do
{
using (var client = new ImapClient())
{
client.Connect(serverAddress, 993, true);
client.Authenticate(username, password);
var inbox = client.Inbox;
inbox.Open(FolderAccess.ReadOnly);
SearchQuery query = SearchQuery.SubjectContains("RUNTESTING");
foreach (var uid in inbox.Search(query))
{
var process = Process.Start("testing.exe");
process.WaitForExit();
using (var client = new SmtpClient())
{
var message = new MimeMessage();
message.Subject = "Testing complete";
client.Connect(serverAddress, port, false);
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(username, password);
client.Send(message);
client.Disconnect(true);
}
}
client.Disconnect(true);
}
System.Threading.Thread.Sleep(period);
} while (true);
}
Wow - большое вам спасибо –
Знаете ли вы, как я буду импортировать эту библиотеку в Visual Studio 2013? Я новичок в C# и VS –
Я не уверен, что если в 2013 году будет поддержка NuGet, но если это будет то же самое, то будет в проекте> управлять пакетами NuGet. Там вы можете искать MailKit и легко добавлять его. В противном случае вы должны загрузить решение из связанного Github I и скомпилировать его в visual studio. Затем вы можете добавить ссылку на DLL-файл, сгенерированный Project> Add reference. – non