Transiever.ManageSieve 1.3.0

dotnet add package Transiever.ManageSieve --version 1.3.0
                    
NuGet\Install-Package Transiever.ManageSieve -Version 1.3.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="Transiever.ManageSieve" Version="1.3.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Transiever.ManageSieve" Version="1.3.0" />
                    
Directory.Packages.props
<PackageReference Include="Transiever.ManageSieve" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Transiever.ManageSieve --version 1.3.0
                    
#r "nuget: Transiever.ManageSieve, 1.3.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.
#:package Transiever.ManageSieve@1.3.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Transiever.ManageSieve&version=1.3.0
                    
Install as a Cake Addin
#tool nuget:?package=Transiever.ManageSieve&version=1.3.0
                    
Install as a Cake Tool

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, and BYE completion 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

  • IManageSieveClient represents one stateful ManageSieve session.
  • IManageSieveClientFactory creates independently owned clients.
  • IManageSieveAuthenticator represents a SASL challenge/response mechanism.
  • ManageSieveClientOptions configures endpoint, security mode, and timeouts.
  • ManageSieveCapabilities exposes standard capabilities and preserves unknown capability values.
  • ManageSieveCommandResult exposes server messages, response codes, and warnings.
  • ManageSievePlainAuthenticator provides SASL PLAIN and is rejected on an unsecured connection.
  • ManageSieveScramSha256Authenticator provides the protected SCRAM-SHA-256 password 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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