Skip to content

Instantly share code, notes, and snippets.

@PaulDMendoza
Last active August 14, 2018 23:06
Show Gist options
  • Save PaulDMendoza/9931c5649695970b6cc8656413274dc1 to your computer and use it in GitHub Desktop.
Save PaulDMendoza/9931c5649695970b6cc8656413274dc1 to your computer and use it in GitHub Desktop.
SigParser Gmail Example
// Define parameters of request.
var request = service.Users.Messages.List("me");
IList<Message> messages = request.Execute().Messages;
Console.WriteLine("Messages:");
if (messages != null && messages.Count > 0)
{
foreach (var message in messages)
{
var messageReq = service.Users.Messages.Get("me", message.Id);
messageReq.Format = UsersResource.MessagesResource.GetRequest.FormatEnum.Full;
var m = messageReq.Execute();
var html = DecodeBase64(m.Payload.Parts.FirstOrDefault(f => f.MimeType == "text/html")?.Body?.Data);
var plain = DecodeBase64( m.Payload.Parts.FirstOrDefault(f => f.MimeType == "text/plain")?.Body?.Data);
var fromHeader = m.Payload.Headers?.FirstOrDefault(f => f.Name == "From")?.Value;
var senderEmailMatch = System.Text.RegularExpressions.Regex.Match(fromHeader, "<(.+)>");
var senderEmail = senderEmailMatch.Groups[1].Value;
var senderName = fromHeader.Substring(0, senderEmailMatch.Index);
var client = new SigParser.Client(sigParserApiKeyString);
var emailResult = client.Parse(new SigParser.EmailParseRequest
{
from_address = senderEmail,
from_name = senderName,
htmlbody = html,
plainbody = plain
}).Result;
Console.WriteLine("Email");
foreach(var c in emailResult.contacts)
{
Console.WriteLine(
$@"
-----------------------
{c.firstName} {c.lastName}
Mobile: {c.mobilePhone}
Office: {c.officePhone}
Address: {c.address}
Email: {c.emailAddress}
LinkedIn: {c.linkedInUrl}
Twitter: {c.twitterUrl}
");
}
Console.ReadLine();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment