OutWit.Shared.Email.Provider.Resend
1.0.1
dotnet add package OutWit.Shared.Email.Provider.Resend --version 1.0.1
NuGet\Install-Package OutWit.Shared.Email.Provider.Resend -Version 1.0.1
<PackageReference Include="OutWit.Shared.Email.Provider.Resend" Version="1.0.1" />
<PackageVersion Include="OutWit.Shared.Email.Provider.Resend" Version="1.0.1" />
<PackageReference Include="OutWit.Shared.Email.Provider.Resend" />
paket add OutWit.Shared.Email.Provider.Resend --version 1.0.1
#r "nuget: OutWit.Shared.Email.Provider.Resend, 1.0.1"
#:package OutWit.Shared.Email.Provider.Resend@1.0.1
#addin nuget:?package=OutWit.Shared.Email.Provider.Resend&version=1.0.1
#tool nuget:?package=OutWit.Shared.Email.Provider.Resend&version=1.0.1
OutWit.Shared.Email.Provider.Resend
Resend email transport plugin for OutWit hosts. Implements IEmailTransport over the Resend .NET SDK — HTTP API at api.resend.com. This is the default provider used in the WitIdentity release installation.
Configuration
Plugin reads its own appsettings.json from inside the deployed module folder:
{
"Resend": {
"ApiToken": "",
"ApiUrl": "https://api.resend.com"
}
}
| Setting | Default | Description |
|---|---|---|
ApiToken |
(required) | Resend API key (starts with re_). Should be supplied via env var Resend__ApiToken — keep the JSON value blank. |
ApiUrl |
https://api.resend.com |
API base URL. Override only to point at a staging endpoint or a self-hosted proxy. |
Env-var override convention
Standard .NET configuration binding maps double-underscore env vars to JSON keys:
Resend__ApiToken=re_xxxxxxxxxxxxxxxxxxxxxxxx # never put this in JSON
Resend__ApiUrl=https://api.resend.com
Installation
dotnet add package OutWit.Shared.Email.Provider.Resend
The plugin's build/.targets auto-copies the module to your output @Email/resend.module/ at build time. The host's WitPluginLoader<IEmailProviderPlugin>(Path.Combine(AppContext.BaseDirectory, "@Email")) discovers it.
Failure classification
Resend SDK exceptions are mapped to neutral EmailFailureKind values so the host's failure tracker / retry policy works the same regardless of provider:
| Resend error / HTTP code | Kind |
|---|---|
MissingApiKey, InvalidApiKey, RestrictedApiKey, InvalidAccess, HTTP 401/403 |
AuthFailure |
RateLimitExceeded, MonthlyQuotaExceeded, DailyQuotaExceeded, HTTP 429 |
RateLimited (retry with backoff) |
InternalServerError, ApplicationError, ConcurrentIdempotentRequests, HTTP 5xx |
Transient (caller may retry) |
HttpRequestException, TaskCanceledException, TimeoutException |
Transient |
ValidationError, InvalidFromAddress, MissingRequiredField, HTTP 422 |
Permanent |
| Any other exception | Permanent |
InvalidRecipient is not produced — Resend lumps bad addresses into the generic ValidationError bucket, so we surface them as Permanent.
License
Apache 2.0 — see LICENSE.txt.
| 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. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.