SplatDev.Messaging.Twilio
2.0.0
dotnet add package SplatDev.Messaging.Twilio --version 2.0.0
NuGet\Install-Package SplatDev.Messaging.Twilio -Version 2.0.0
<PackageReference Include="SplatDev.Messaging.Twilio" Version="2.0.0" />
<PackageVersion Include="SplatDev.Messaging.Twilio" Version="2.0.0" />
<PackageReference Include="SplatDev.Messaging.Twilio" />
paket add SplatDev.Messaging.Twilio --version 2.0.0
#r "nuget: SplatDev.Messaging.Twilio, 2.0.0"
#:package SplatDev.Messaging.Twilio@2.0.0
#addin nuget:?package=SplatDev.Messaging.Twilio&version=2.0.0
#tool nuget:?package=SplatDev.Messaging.Twilio&version=2.0.0
SplatDev.Messaging.Twilio
Twilio SMS provider for SplatDev.Messaging — sends SMS messages via the Twilio Programmable SMS API using the official Twilio SDK.
Compatibility
| .NET | Umbraco | Package Version |
|---|---|---|
| 8.0 | 13 | 2.0.0 |
| 10.0 | 17 | 2.0.0 |
Installation
dotnet add package SplatDev.Messaging.Twilio
Configuration
Constructor
using SplatDev.Messaging.Twilio.Controllers;
var twilio = new TwilioSmsController(
accountSid: "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
authToken: "your-auth-token");
accountSid— Your Twilio Account SID (starts withAC)authToken— Your Twilio Auth Token
DI registration (recommended)
builder.Services.AddSingleton<TwilioSmsController>(sp =>
{
var accountSid = builder.Configuration["Twilio:AccountSid"];
var authToken = builder.Configuration["Twilio:AuthToken"];
return new TwilioSmsController(accountSid!, authToken!);
});
appsettings.json
{
"Twilio": {
"AccountSid": "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"AuthToken": "your-auth-token"
}
}
Usage
using SplatDev.Messaging.Twilio.Controllers;
using SplatDev.Messaging.Twilio.Models;
// Send via Sms model
var sms = new Sms
{
From = new Twilio.Types.PhoneNumber("+1234567890"),
To = new Twilio.Types.PhoneNumber("+5511999999999"),
Body = "Your verification code is 123456"
};
var result = twilio.SendMessage(sms);
Console.WriteLine($"SID: {result.Sid}, Status: {result.Status}");
// Send via string parameters (simpler API)
var resultAsync = await twilio.SendMessageAsync(
subject: "", // Not used for SMS
from: "",
fromAddress: "+1234567890",
to: "",
toAddress: "+5511999999999",
message: "", // Not used for SMS
plainMessage: "Your order #1234 has shipped!");
Features
- Implements
IMessagingController<Sms, MessageResource>fromSplatDev.Messaging - True async via
MessageResource.CreateAsync - Sync wrapper via
MessageResource.Create - Uses official
TwilioSDK v7.x (not REST directly) - E.164 phone number format required for
fromAddressandtoAddress - The string-parameter API overload maps
plainMessageto the SMS body (subject,from,to,messageare ignored for SMS context)
Dependencies
| Package | Purpose |
|---|---|
SplatDev.Messaging |
Core messaging abstractions (IMessagingController<T,U>) |
Twilio 7.4.1 |
Official Twilio SDK for Programmable SMS |
No additional HTTP client library required — the Twilio SDK handles transport.
SplatDev.Messaging.Twilio — part of the SplatDev.Umbraco.Plugins suite. Licensed under MIT. © SplatDev Ltda.
Changelog
2.0.0 — 2026-08-25
Breaking. SplatDev.Messaging.Twilio.Models.Sms is removed. Use SplatDev.Messaging.Models.Sms instead — the same three properties, with From and To as plain strings rather than Twilio's PhoneNumber, so the calling code no longer needs a Twilio type to describe a message. TwilioSmsController now implements the shared ISmsMessagingController<Sms, MessageResource> contract and gains (from, to, body) overloads. Also adds TwilioOptions and AddSplatDevTwilio(configuration) for configuration-based registration.
1.0.2 — 2026-08-24
Removes a dashboard screenshot that showed an error toast. It was captured against a site where this plugin's API was unreachable, so it advertised a broken dashboard. No screenshot is better than a misleading one; a replacement will be taken against a working install.
1.0.1 — 2026-08-24
Package metadata only: the listing now carries an icon and search tags, and the project and repository links point at the organisation that actually hosts this code. No code changes.
1.0.0 — 2026-08-24
This package now keeps a changelog. Earlier releases predate it and are not reconstructed here — consult the repository history for those. From this version on, every release records what changed for someone using it.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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 was computed. 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. |
-
net10.0
- SplatDev.Messaging (>= 1.1.0)
- Twilio (>= 7.4.1)
-
net8.0
- SplatDev.Messaging (>= 1.1.0)
- Twilio (>= 7.4.1)
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 |
|---|---|---|
| 2.0.0 | 29 | 8/25/2026 |