Transiever.ManageSieve
1.3.0
dotnet add package Transiever.ManageSieve --version 1.3.0
NuGet\Install-Package Transiever.ManageSieve -Version 1.3.0
<PackageReference Include="Transiever.ManageSieve" Version="1.3.0" />
<PackageVersion Include="Transiever.ManageSieve" Version="1.3.0" />
<PackageReference Include="Transiever.ManageSieve" />
paket add Transiever.ManageSieve --version 1.3.0
#r "nuget: Transiever.ManageSieve, 1.3.0"
#:package Transiever.ManageSieve@1.3.0
#addin nuget:?package=Transiever.ManageSieve&version=1.3.0
#tool nuget:?package=Transiever.ManageSieve&version=1.3.0
Transiever.ManageSieve
Transiever.ManageSieve provides an async-first .NET 10 client for ManageSieve.
It implements the RFC 5804 command surface over TCP, STARTTLS, or implicit TLS. The protocol reader handles these response details:
- Fragmented input.
- Quoted strings.
- Byte-counted literals.
- Capability data.
OK,NO, andBYEcompletion responses.
Install
dotnet add package Transiever.ManageSieve
The package is available on NuGet.org. For a human-oriented overview and tool picker, see the Transiever ManageSieve guide.
Main contracts
IManageSieveClientrepresents one stateful ManageSieve session.IManageSieveClientFactorycreates independently owned clients.IManageSieveAuthenticatorrepresents a SASL challenge/response mechanism.ManageSieveClientOptionsconfigures endpoint, security mode, and timeouts.ManageSieveCapabilitiesexposes standard capabilities and preserves unknown capability values.ManageSieveCommandResultexposes server messages, response codes, and warnings.ManageSievePlainAuthenticatorprovides SASL PLAIN and is rejected on an unsecured connection.ManageSieveScramSha256Authenticatorprovides the protectedSCRAM-SHA-256password exchange.- Typed exceptions distinguish connection, authentication, protocol, and command failures.
See the authentication guide for the SASL lifecycle, security, memory ownership, diagnostics, and failure contract.
See the architecture guide for protocol constraints and the testing guide for test policy.
SCRAM-SHA-256
Construct ManageSieveScramSha256Authenticator with a printable-ASCII user name, password, and optional authorization identity:
IManageSieveAuthenticator authenticator =
new ManageSieveScramSha256Authenticator("user", password, authorizationIdentity: null);
await client.StartTlsAsync();
await client.AuthenticateAsync(authenticator);
The mechanism name is exactly SCRAM-SHA-256, and it refuses an unprotected connection.
User names, passwords, and authorization identities are limited to printable ASCII and 1,024 bytes; a user name is required, a password may be empty, and the authorization identity is optional.
The client uses an 18-byte cryptographically random nonce encoded with standard Base64 for production exchanges.
The deterministic nonce seam is internal test behavior and is not part of the public API.
The exchange contract, bounds, proof validation, diagnostics, and cleanup ownership are defined in the authentication guide.
Script operations
IReadOnlyList<ManageSieveScriptInfo> scripts =
await client.ListScriptsAsync(cancellationToken);
ManageSieveScript active = await client.GetScriptAsync("active", cancellationToken);
ManageSieveCommandResult validation =
await client.CheckScriptAsync(candidateBytes, cancellationToken);
await client.PutScriptAsync("candidate", candidateBytes, cancellationToken);
await client.SetActiveScriptAsync("candidate", cancellationToken);
Pass null to SetActiveScriptAsync to disable Sieve processing, matching the empty script-name behavior of SETACTIVE.
Script payloads are bytes rather than strings. Literal sizes are byte counts, and downloaded content must be preservable exactly.
Consumers own reconciliation and deployment policy.
Transiever.ManageSieve does not parse, merge, optimize, or silently replace Sieve content.
The public client always uses platform TLS validation. A certificate-validation injection point exists only as an internal test seam. Disposable integration tests use it to trust the exact certificate presented by the test container. This avoids creating an accept-any-certificate public option.
Transiever.SieveRuler consumes this library through the published NuGet package.
Its Docker integration test is granted internal access only to pin the test container certificate.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Transiever.ManageSieve:
| Package | Downloads |
|---|---|
|
Transiever.SieveRuler
.NET 10 library for JSON mail rules, Sieve generation and reconciliation, and safe ManageSieve deployment. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.3.0 | 209 | 9/7/2026 |
| 1.2.0 | 118 | 9/2/2026 |
| 1.1.2 | 548 | 8/3/2026 |
| 1.1.1 | 278 | 7/21/2026 |
| 1.1.0 | 110 | 7/21/2026 |
| 1.0.1 | 140 | 7/20/2026 |
| 1.0.0 | 190 | 7/10/2026 |
| 1.0.0-beta.3 | 65 | 7/9/2026 |
| 1.0.0-beta.2 | 69 | 7/7/2026 |
| 1.0.0-beta.1 | 105 | 6/28/2026 |