{"id":32440507,"url":"https://github.com/marthijn/sidio.mailbluster","last_synced_at":"2025-10-26T01:47:51.812Z","repository":{"id":246622699,"uuid":"821673509","full_name":"marthijn/Sidio.MailBluster","owner":"marthijn","description":"An unofficial C# SDK for the MailBluster API.","archived":false,"fork":false,"pushed_at":"2025-10-20T14:39:16.000Z","size":1174,"stargazers_count":1,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-10-20T16:36:45.946Z","etag":null,"topics":["csharp","httpclient","mailbluster","sdk"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/marthijn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-29T05:47:23.000Z","updated_at":"2025-10-20T14:24:33.000Z","dependencies_parsed_at":"2024-06-29T07:22:44.919Z","dependency_job_id":"4c78a9e0-f2d4-4782-9571-65b43ff1a462","html_url":"https://github.com/marthijn/Sidio.MailBluster","commit_stats":null,"previous_names":["marthijn/sidio.mailbluster"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/marthijn/Sidio.MailBluster","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marthijn%2FSidio.MailBluster","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marthijn%2FSidio.MailBluster/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marthijn%2FSidio.MailBluster/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marthijn%2FSidio.MailBluster/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/marthijn","download_url":"https://codeload.github.com/marthijn/Sidio.MailBluster/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/marthijn%2FSidio.MailBluster/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281047795,"owners_count":26435124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-25T02:00:06.499Z","response_time":81,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","httpclient","mailbluster","sdk"],"created_at":"2025-10-26T01:47:50.862Z","updated_at":"2025-10-26T01:47:51.804Z","avatar_url":"https://github.com/marthijn.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Sidio.MailBluster\n=============\nSidio.MailBluster is an unofficial C# SDK for the [MailBluster](https://mailbluster.com) API. This package is not yet fully feature complete,\nsee the feature status below. If you encounter any issues or have recommendations, feel free to create an issue or a \npull request.\n\n[![build](https://github.com/marthijn/Sidio.MailBluster/actions/workflows/build.yml/badge.svg)](https://github.com/marthijn/Sidio.MailBluster/actions/workflows/build.yml)\n[![NuGet Version](https://img.shields.io/nuget/v/Sidio.MailBluster)](https://www.nuget.org/packages/Sidio.MailBluster/)\n[![Coverage Status](https://coveralls.io/repos/github/marthijn/Sidio.MailBluster/badge.svg?branch=main)](https://coveralls.io/github/marthijn/Sidio.MailBluster?branch=main)\n\n⚠️ On the debug log level, sensitive data will be logged. It is highly recommended to\ndisable the debug log level on production systems and/or configure redaction. See the logging and compliance section\nof this readme.\n\n# Installation\nAdd [the package](https://www.nuget.org/packages/Sidio.MailBluster/) to your project.\n\n# Usage\n## Options\n```json\n{\n  \"MailBluster:Url\": \"https://api.mailbluster.com/api/\",\n  \"MailBluster:ApiKey\": \"your-api-key\"\n}\n```\n\n## Dependency injection\n```csharp\nservices.AddMailBluster();\n```\n\n## Using the client\n```csharp\npublic class MyClass\n{\n    private readonly IMailBlusterClient _client;\n\n    public MyClass(IMailBlusterClient client)\n    {\n        _client = client;        \n    }\n\n     public async Task GetLeads()\n     {\n          var lead = await _client.GetLeadAsync(\"noreply@sidio.nl\");\n    }\n}\n```\n\n# Logging and compliance\nThe MailBluster client writes logs on the `Debug` level. The logs contain the request and response data. Sensitive information,\nsuch as names, ip addresses and email addresses, are redacted using the `Microsoft.Extensions.Compliance.Redaction` framework. To use the\ndefault implementation, use:\n```csharp\nbuilder.Services.AddRedaction(\n    rb =\u003e\n    {\n        rb.AddMailBlusterCompliance();\n    });\n```\n\nCurrently, there are three types of classifications, which will be redacted as follows:\n- Personally identifiable information: values will be replaced with asterisks except for the first character (classification `MailBlusterDataTaxonomy.PersonallyIdentifiableInformation`)\n  - Email address: will be redacted from for example `noreply@sidio.nl` to `n******@*****.**` (classification `MailBlusterDataTaxonomy.EmailAddressInformation`)\n- Sensitive information: values will be replaced with asterisks except for the first character (classification `MailBlusterDataTaxonomy.SensitiveInformation`)\n\nA fully configured example with JSON logging:\n```csharp\n// install packages:\n// - Microsoft.Extensions.Telemetry\n// - Microsoft.Extensions.Compliance.Redaction\nbuilder.Services.AddLogging(\n    x =\u003e\n    {\n        x.EnableRedaction();\n        \n        // json logging enables logging of the request and response data\n        x.ClearProviders();\n        x.AddJsonConsole(option =\u003e option.JsonWriterOptions = new JsonWriterOptions\n        {\n            Indented = true\n        });\n        \n        x.Services.AddRedaction(\n            rb =\u003e\n            {\n                rb.AddMailBlusterCompliance();\n            });\n    });\n```\n\n\n# Feature status\n- [x] Manage leads\n  - [x] Create\n  - [x] Read\n  - [x] Update\n  - [x] Delete\n- [x] Manage fields\n    - [x] Create\n    - [x] Read\n    - [x] Update\n    - [x] Delete\n- [x] Manage products\n    - [x] Create\n    - [x] Read\n    - [x] Update\n    - [x] Delete\n- [ ] Manage orders\n    - [ ] Create\n    - [ ] Read\n    - [ ] Update\n    - [ ] Delete\n\n# Integration tests\nIntegration tests are available in the `Sidio.MailBluster.Integration.Tests` project. To run the tests, \nadd the following configuration file `local.settings.json`:\n```json\n{\n  \"MAILBLUSTER_API_KEY\": \"your-api-key\"\n}\n```\n\n## Note:\n- The integration tests will create, update and delete data in your MailBluster brand associated with the API key.\n- In order to run the tests for Fields, a pro account is required.\n\n# API Documentation\n- [MailBluster API](https://mailbluster.com/docs/api)\n\n# Troubleshooting\n## Sensitive data is not redacted in the logs\nInstall these packages in your solution:\n- `Microsoft.Extensions.Telemetry`\n- `Microsoft.Extensions.Compliance.Redaction`\n\nEnsure that the Redaction framework is configured correctly.\n\n## Upgrade to version 2.x\nIn v2.x the dependency Flurl is replaced by RestSharp:\n- Breaking: `MailBlusterHttpException`: the property `StatusCode` is replaced by `HttpStatusCode` and is now of type `HttpStatusCode`.\n- Change: the `IMailBlusterClient` is now registered as a singleton.\n\n# Disclaimer\nThis package is not affiliated with MailBluster. Although we try to cover the API as much as possible using unit- \nand integration testing, we cannot guarantee that all features or error states have been implemented.\nPlease use at your own risk.\n\n# Sponsors\nMany thanks to [MailBluster](https://mailbluster.com/) for providing us with a pro account.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarthijn%2Fsidio.mailbluster","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarthijn%2Fsidio.mailbluster","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarthijn%2Fsidio.mailbluster/lists"}