SigParser 2.0.0

Parse raw email chains and email signatures from either HTML or plain text emails. Multiple languages supported.

Signup for a free account with SigParser to get 1500 free API requests per month.

Install-Package SigParser -Version 2.0.0
dotnet add package SigParser --version 2.0.0
<PackageReference Include="SigParser" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add SigParser --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

Parse email bodies, split email chains chains and email signatures from either HTML or plain text emails. Multiple languages supported.

Signup for a free API key at https://sigparser.com to get an API key and use the API with up to 1500 emails parses per month.

Code Example

var client = new SigParser.Client(ApiKey);
var result = client.ParseRawRequestAsync(new SigParser.EmailParseRequest
            {
                date = new DateTime(2017, 1, 1),
                plainbody = @"
Hi Sally,
Thanks for the meeting the other day. It was greating seeing you. We should catchup sometime soon.

My phone number is 888-333-4233.

Thanks,
Jim Johnson
Senior Software Developer
SigParser Inc.
Cell 777-333-4233
333 Grand Ave, San Diego, CA 93233
https://sigparser.com

",
                from_name = "Jim Johnson",
                from_address = "jim.johnson@sigparser.com",
                subject = "Here is a subject",
                to = new SigParser.Recipient[] { new SigParser.Recipient { name = "Johnny To", emailAddress = "johnny.to@example.com" } },
                cc = new SigParser.Recipient[] { new SigParser.Recipient { name = "Cathy Carbon", emailAddress = "cathy.carbon@example.com" } }
            }).Result;

FAQ

What can it find?

SigParser tries to parse raw emails and pull out everything interesting.

  • Split the emails on the email headers generated by various email clients
    • Multiple languages supported
  • Converts emails to plain text if originally HTML
  • Converts each HTML section to HTML
  • Capture email signatures from each email in an email body.
  • Capture inline phone numbers (ie My phone is...)
  • Capture job titles, addresses, Twitter, LinkedIn handles

How do I use this?

Create an instance of SigParser.Client class and pass it the API key or set the API key property. Then call the Parse(email) async method. For the email object, you need to provide either the HTML or Plain text body or both. If you provide both SigParser will prefer HTML first and if blank then plaintext. For signature parsing it is important to provide the display name “from_name” (first and last name) of the sender which you almost always get for emails. The from_address is also good to provide.
See below for a code example.

Why use an API vs just embedding the parsing logic in the library?

Over time email signature patterns change and email clients change their headers. For example, in 2014 Gmail started using a massively different header for about two months. Instead of making you update your code every week or month, calling an API lets you get the latest algorithm changes without having to update your code. We update the underlying API and algorithms weekly but the API contract shouldn't change and if it does, we're only adding functionality to it.

Can I run SigParser API in my data center?

Yes, but you need to contact us to discuss how to use it onsite and licensing requirements.

To set the URL of your local installation, set the SigParser.Client.BaseUrl to your URL before making any API requests.

Is SigParser storing my emails?

No, SigParser doesn’t store emails you send to it via this package. We receive the payload, process it and return the response. Behind the scenes we use a Lambda function to drive the API so everything is ephemeral.

How do I pull the emails from the email server?

We have a variety of articles at our website on how to do this. It is too long to explain here. Checkout our website.

Parse email bodies, split email chains chains and email signatures from either HTML or plain text emails. Multiple languages supported.

Signup for a free API key at https://sigparser.com to get an API key and use the API with up to 1500 emails parses per month.

Code Example

var client = new SigParser.Client(ApiKey);
var result = client.ParseRawRequestAsync(new SigParser.EmailParseRequest
            {
                date = new DateTime(2017, 1, 1),
                plainbody = @"
Hi Sally,
Thanks for the meeting the other day. It was greating seeing you. We should catchup sometime soon.

My phone number is 888-333-4233.

Thanks,
Jim Johnson
Senior Software Developer
SigParser Inc.
Cell 777-333-4233
333 Grand Ave, San Diego, CA 93233
https://sigparser.com

",
                from_name = "Jim Johnson",
                from_address = "jim.johnson@sigparser.com",
                subject = "Here is a subject",
                to = new SigParser.Recipient[] { new SigParser.Recipient { name = "Johnny To", emailAddress = "johnny.to@example.com" } },
                cc = new SigParser.Recipient[] { new SigParser.Recipient { name = "Cathy Carbon", emailAddress = "cathy.carbon@example.com" } }
            }).Result;

FAQ

What can it find?

SigParser tries to parse raw emails and pull out everything interesting.

  • Split the emails on the email headers generated by various email clients
    • Multiple languages supported
  • Converts emails to plain text if originally HTML
  • Converts each HTML section to HTML
  • Capture email signatures from each email in an email body.
  • Capture inline phone numbers (ie My phone is...)
  • Capture job titles, addresses, Twitter, LinkedIn handles

How do I use this?

Create an instance of SigParser.Client class and pass it the API key or set the API key property. Then call the Parse(email) async method. For the email object, you need to provide either the HTML or Plain text body or both. If you provide both SigParser will prefer HTML first and if blank then plaintext. For signature parsing it is important to provide the display name “from_name” (first and last name) of the sender which you almost always get for emails. The from_address is also good to provide.
See below for a code example.

Why use an API vs just embedding the parsing logic in the library?

Over time email signature patterns change and email clients change their headers. For example, in 2014 Gmail started using a massively different header for about two months. Instead of making you update your code every week or month, calling an API lets you get the latest algorithm changes without having to update your code. We update the underlying API and algorithms weekly but the API contract shouldn't change and if it does, we're only adding functionality to it.

Can I run SigParser API in my data center?

Yes, but you need to contact us to discuss how to use it onsite and licensing requirements.

To set the URL of your local installation, set the SigParser.Client.BaseUrl to your URL before making any API requests.

Is SigParser storing my emails?

No, SigParser doesn’t store emails you send to it via this package. We receive the payload, process it and return the response. Behind the scenes we use a Lambda function to drive the API so everything is ephemeral.

How do I pull the emails from the email server?

We have a variety of articles at our website on how to do this. It is too long to explain here. Checkout our website.

Release Notes

2.0.0 - Parse is no longer async and ParseAsync is the async version. Not everyone can use async.

1.0.15 - Fixed bug with deserializing emailTypes

1.0.14 - Added EmailTypes categories array so we can add more meta data to different email types.

1.0.13 - Accept "to" and "cc" fields as inputs which are returned for the first email. Useful to unify handling of contact data after sending emails to SigParser.

1.0.12 - Added addressParts (street, city, state, zip, country) fields when they're available

1.0.11 - Added nameSource and nameQuality

1.0.10 - Added new fields for website, companyname, cleanedBodyHTML, cleanedBodyPlain, emailAddressDomain, emailAddressDomainWithoutTLD. Added a performance optimization option when calling the API.

1.0.9 - Added "subject" to the emails collection response property. Added the ability to override the BaseURL for the API client for onsite installations of SigParser API.

1.0.7 - Improved description

1.0.6 - Added properties for cleanedemailbody,cleanedemailbody_ishtml,cleanedemailbody_plain, htmlBody, spammyLookingEmail and more descriptions on properties.

This package is not used by any popular GitHub repositories.

Version History

Version Downloads Last updated
2.0.0 95 8/14/2019
1.0.15 82 8/6/2019
1.0.14 65 8/6/2019
1.0.13 68 8/6/2019
1.0.12 70 8/4/2019
1.0.11 66 8/2/2019
1.0.10 126 5/6/2019
1.0.9 115 4/2/2019
1.0.8 119 3/29/2019
1.0.7 111 3/9/2019
1.0.6 93 3/9/2019
1.0.5 228 8/3/2018
1.0.4 189 8/3/2018
1.0.3 188 8/3/2018