Sidio.MailBluster 1.2.0

Prefix Reserved
dotnet add package Sidio.MailBluster --version 1.2.0                
NuGet\Install-Package Sidio.MailBluster -Version 1.2.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sidio.MailBluster" Version="1.2.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sidio.MailBluster --version 1.2.0                
#r "nuget: Sidio.MailBluster, 1.2.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sidio.MailBluster as a Cake Addin
#addin nuget:?package=Sidio.MailBluster&version=1.2.0

// Install Sidio.MailBluster as a Cake Tool
#tool nuget:?package=Sidio.MailBluster&version=1.2.0                

Sidio.MailBluster

Sidio.MailBluster is an unofficial C# SDK for the MailBluster API. This package is not yet fully feature complete, see the feature status below. If you encounter any issues or have recommendations, feel free to create an issue or a pull request.

build NuGet Version Coverage Status

⚠️ On the debug log level, sensitive data will be logged. It is highly recommended to disable the debug log level on production systems and/or configure redaction. See the logging and compliance section of this readme.

Installation

Add the package to your project.

Usage

Options

{
  "MailBluster:Url": "https://api.mailbluster.com/api/",
  "MailBluster:ApiKey": "your-api-key"
}

Dependency injection

services.AddMailBluster();

Using the client

public class MyClass
{
    private readonly IMailBlusterClient _client;

    public MyClass(IMailBlusterClient client)
    {
        _client = client;        
    }

     public async Task GetLeads()
     {
          var lead = await _client.GetLeadAsync("noreply@sidio.nl");
    }
}

Logging and compliance

The MailBluster client writes logs on the Debug level. The logs contain the request and response data. Sensitive information, such as names, ip addresses and email addresses, are redacted using the Microsoft.Extensions.Compliance.Redaction framework. To use the default implementation, use:

builder.Services.AddRedaction(
    rb =>
    {
        rb.AddMailBlusterCompliance();
    });

Currently, there are three types of classifications, which will be redacted as follows:

  • Personally identifiable information: values will be replaced with asterisks except for the first character (classification MailBlusterDataTaxonomy.PersonallyIdentifiableInformation)
    • Email address: will be redacted from for example noreply@sidio.nl to n******@*****.** (classification MailBlusterDataTaxonomy.EmailAddressInformation)
  • Sensitive information: values will be replaced with asterisks except for the first character (classification MailBlusterDataTaxonomy.SensitiveInformation)

A fully configured example with JSON logging:

// install packages:
// - Microsoft.Extensions.Telemetry
// - Microsoft.Extensions.Compliance.Redaction
builder.Services.AddLogging(
    x =>
    {
        x.EnableRedaction();
        
        // json logging enables logging of the request and response data
        x.ClearProviders();
        x.AddJsonConsole(option => option.JsonWriterOptions = new JsonWriterOptions
        {
            Indented = true
        });
        
        x.Services.AddRedaction(
            rb =>
            {
                rb.AddMailBlusterCompliance();
            });
    });

Feature status

  • Manage leads
    • Create
    • Read
    • Update
    • Delete
  • Manage fields
    • Create
    • Read
    • Update
    • Delete
  • Manage products
    • Create
    • Read
    • Update
    • Delete
  • Manage orders
    • Create
    • Read
    • Update
    • Delete

Integration tests

Integration tests are available in the Sidio.MailBluster.Integration.Tests project. To run the tests, add the following configuration file local.settings.json:

{
  "MAILBLUSTER_API_KEY": "your-api-key"
}

Note:

  • The integration tests will create, update and delete data in your MailBluster brand associated with the API key.
  • In order to run the tests for Fields, a pro account is required.

API Documentation

Troubleshooting

Sensitive data is not redacted in the logs

Install these packages in your solution:

  • Microsoft.Extensions.Telemetry
  • Microsoft.Extensions.Compliance.Redaction

Ensure that the Redaction framework is configured correctly.

Disclaimer

This package is not affiliated with MailBluster. Although we try to cover the API as much as possible using unit- and integration testing, we cannot guarantee that all features or error states have been implemented. Please use at your own risk.

Sponsors

Many thanks to MailBluster for providing us with a pro account.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.0 0 11/13/2024
1.1.3 91 10/14/2024
1.1.2 120 9/9/2024
1.1.1 123 8/19/2024
1.0.1 117 7/18/2024
1.0.0 119 7/12/2024