Transmitly.ChannelProvider.SendGrid
0.5.0
dotnet add package Transmitly.ChannelProvider.SendGrid --version 0.5.0
NuGet\Install-Package Transmitly.ChannelProvider.SendGrid -Version 0.5.0
<PackageReference Include="Transmitly.ChannelProvider.SendGrid" Version="0.5.0" />
<PackageVersion Include="Transmitly.ChannelProvider.SendGrid" Version="0.5.0" />
<PackageReference Include="Transmitly.ChannelProvider.SendGrid" />
paket add Transmitly.ChannelProvider.SendGrid --version 0.5.0
#r "nuget: Transmitly.ChannelProvider.SendGrid, 0.5.0"
#:package Transmitly.ChannelProvider.SendGrid@0.5.0
#addin nuget:?package=Transmitly.ChannelProvider.SendGrid&version=0.5.0
#tool nuget:?package=Transmitly.ChannelProvider.SendGrid&version=0.5.0
Transmitly.ChannelProvider.SendGrid
Transmitly.ChannelProvider.SendGrid is the convenience package for sending email with Transmitly through Twilio SendGrid.
This is the package most applications should install. It wires together:
Transmitly.ChannelProvider.SendGrid.ConfigurationTransmitly.ChannelProvider.SendGrid.Sdk
Supported channels:
Email
Install
dotnet add package Transmitly.ChannelProvider.SendGrid
Quick Start
using Transmitly;
ICommunicationsClient client = new CommunicationsClientBuilder()
.AddSendGridSupport(options =>
{
options.ApiKey = "your-sendgrid-api-key";
// Required unless ValidateDeliveryReportSignature = false. See Delivery Reports.
options.EventWebhookVerificationKey = "your-event-webhook-verification-key";
})
.AddPipeline("welcome-email", pipeline =>
{
pipeline.AddEmail("welcome@example.com".AsIdentityAddress("Example App"), email =>
{
email.Subject.AddStringTemplate("Welcome to Example App");
email.HtmlBody.AddStringTemplate("<strong>Welcome</strong> to Example App.");
email.TextBody.AddStringTemplate("Welcome to Example App.");
});
})
.BuildClient();
var result = await client.DispatchAsync(
"welcome-email",
"customer@example.com",
new { });
Configuration
AddSendGridSupport(options => ...) accepts SendGridOptions.
Common settings:
ApiKey: your Twilio SendGrid API key.Host: defaults tohttps://api.sendgrid.com.Version: defaults tov3.HttpErrorAsException: forward HTTP failures as exceptions from the underlying client.RequestHeaders,UrlPath,Auth, andReliabilitySettingsfor advanced client configuration.
SendGrid-Specific Email Features
This package registers SendGrid email extensions through email.SendGrid().
The primary provider-specific setting is TemplateId, which lets you send with a SendGrid dynamic template instead of the channel subject/body content.
using Transmitly;
pipeline.AddEmail("welcome@example.com".AsIdentityAddress("Example App"), email =>
{
email.Subject.AddStringTemplate("Welcome to Example App");
email.TextBody.AddStringTemplate("Welcome to Example App.");
email.SendGrid().TemplateId = "d-0123456789abcdef0123456789abcdef";
});
Delivery Reports
This package registers a SendGrid webhook adaptor that converts SendGrid event webhook payloads into Transmitly DeliveryReport instances.
SendGrid posts every event to one static webhook URL per account and can't add Transmitly's per-message context to it. So the URL itself has to identify the channel and provider with tlyc=Email and tlycp=SendGrid. Without them the adaptor ignores the request:
https://your-app.example.com/communications/channel/provider/update?tlyc=Email&tlycp=SendGrid
tlycp=SendGridmatches every SendGrid registration, including ones added with aproviderId.- Because the URL is the same for every message, reports don't carry a pipeline intent or pipeline id. To match a report to the message you sent, compare resource ids. The dispatch result's resource id is SendGrid's
X-Message-ID. The report's resource id is the event'ssg_message_id, which starts with thatX-Message-ID, followed by.and a suffix SendGrid adds.
If you are using the MVC integration packages, point the webhook at your Transmitly delivery-report endpoint and include the same query-string context.
Event webhooks are checked against SendGrid's Signed Event Webhook headers. Turn on Signed Event Webhook in SendGrid (Settings → Mail Settings → Event Webhook) and copy the verification key. Requests that fail the check are rejected with 403 Forbidden by the MVC integration packages.
EventWebhookVerificationKey: the verification key.AddSendGridSupportthrows at startup if it is missing whileValidateDeliveryReportSignatureistrue.ValidateDeliveryReportSignature: defaults totrue. Set it tofalseif you don't receive SendGrid event webhooks; then no key is needed.
Related Packages
- Transmitly
- Transmitly.ChannelProvider.SendGrid.Configuration
- Transmitly.ChannelProvider.SendGrid.Sdk
Copyright (c) Code Impressions, LLC. This open-source project is sponsored and maintained by Code Impressions and is licensed under the Apache License, Version 2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 is compatible. net48 is compatible. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.7.2
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
-
.NETFramework 4.8
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
-
.NETStandard 2.0
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
-
net10.0
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
-
net6.0
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
-
net8.0
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
-
net9.0
- Transmitly (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Configuration (>= 0.5.0)
- Transmitly.ChannelProvider.SendGrid.Sdk (>= 0.5.0)
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 |
|---|---|---|
| 0.5.0 | 47 | 11/8/2026 |
| 0.4.6-2.dc0c6c0 | 44 | 11/7/2026 |
| 0.4.5 | 122 | 10/23/2026 |
| 0.4.4 | 100 | 10/19/2026 |
| 0.4.0 | 198 | 7/26/2026 |
| 0.3.0 | 194 | 3/25/2026 |
| 0.2.4-11.4cf5b0f | 95 | 3/24/2026 |
| 0.2.4-9.8dd6a45 | 118 | 1/17/2026 |
| 0.2.3 | 325 | 7/31/2025 |
| 0.2.2 | 320 | 7/27/2025 |