More complete email parsing

This commit is contained in:
Norm MacLennan
2014-05-07 13:51:37 -07:00
parent 64ab200480
commit 9c25c84176
6 changed files with 21 additions and 30 deletions

View File

@@ -58,6 +58,7 @@
<Reference Include="System.Configuration" />
<Reference Include="Newtonsoft.Json">
<HintPath>..\..\packages\Newtonsoft.Json.6.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
<Package>monodevelop</Package>
</Reference>
</ItemGroup>
<ItemGroup>
@@ -71,7 +72,6 @@
<Compile Include="Plugins\Email\ImapInput.cs" />
<Compile Include="Plugins\Email\IEmailSetting.cs" />
<Compile Include="Model\Alert.cs" />
<Compile Include="Plugins\Email\IParseRule.cs" />
<Compile Include="Model\IAlert.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

View File

@@ -12,7 +12,7 @@ namespace NOCQ.Plugins.Email
public string Folder {get;set;}
public bool IsSsl {get;set;}
public int Frequency { get; set; }
public IEnumerable<IParseRule> ParseRules {get;set;}
public IEnumerable<ParseRule> ParseRules {get;set;}
}
}

View File

@@ -11,7 +11,7 @@ namespace NOCQ.Plugins.Email
string Folder {get;set;}
bool IsSsl {get;set;}
int Frequency { get; set; }
IEnumerable<IParseRule> ParseRules {get;set;}
IEnumerable<ParseRule> ParseRules {get;set;}
}
}

View File

@@ -1,18 +0,0 @@
using System;
namespace NOCQ.Plugins.Email
{
public interface IParseRule
{
string Name { get; set; }
bool Enabled { get; set; }
string From {get;set;}
string Source {get;set;}
string System {get;set;}
string Service {get;set;}
string Data {get;set;}
string Runbook { get; set;}
string Severity {get;set;}
}
}

View File

@@ -17,7 +17,7 @@ namespace NOCQ.Plugins.Email
int port { get; set; }
bool ssl { get; set; }
DateTime lastRun { get; set; }
List<IParseRule> parseRules{ get; set; }
IEnumerable<ParseRule> parseRules{ get; set; }
public ImapInput (dynamic settings)
{
@@ -43,13 +43,15 @@ namespace NOCQ.Plugins.Email
timer.Elapsed += Execute;
}
public void Execute(object sender, ElapsedEventArgs args)
private List<Alert> getAlerts()
{
var alerts = new List<Alert> ();
using(var imap = new ImapClient(server, loginName, password, ImapClient.AuthMethods.Login, 993, true)) {
var msgs = imap.SearchMessages(
SearchCondition.Undeleted().And(
SearchCondition.SentSince(new DateTime(2014, 5, 7))
));
SearchCondition.SentSince(new DateTime(2014, 5, 7))
));
foreach (var msg in msgs)
{
@@ -73,16 +75,23 @@ namespace NOCQ.Plugins.Email
Console.WriteLine ("Source: " + source);
Console.WriteLine("System: " + sysMatch.Value);
Console.WriteLine ("Service: " + servMatch.Value);
alerts.Add (new Alert () {
Source = source,
System = sysMatch.Value,
Service = servMatch.Value
});
}
//Console.WriteLine (system);
}
}
}
}
public void Execute(object sender, ElapsedEventArgs args)
{
}
public void Run()
{
Console.WriteLine ("Start");

View File

@@ -2,7 +2,7 @@ using System;
namespace NOCQ.Plugins.Email
{
public class ParseRule : IParseRule
public class ParseRule
{
public string Name { get; set; }
public bool Enabled { get; set; }