Render25 — High-performance transactional email platform. Now available.
Client SDKs

C# / .NET SDK

The official Render25 .NET client. Compatible with .NET 6, 7, 8, .NET Standard 2.0/2.1, and C# 10+. Fully asynchronous and thread-safe.

.NET 6 / 7 / 8 / 9NuGet: Render25Async / Task-based

Installation

bash
dotnet add package Render25

Or via Package Manager:

powershell
Install-Package Render25

Basic Usage

Initialize the client. It automatically detects RENDER25_API_KEY from the environment.

Program.cs
using Render25;

// Automatically reads RENDER25_API_KEY from environment
var client = new Render25Client();

var response = await client.Emails.SendAsync(new SendEmailOptions
{
    From = "support@yourdomain.com",
    To = new List<string> { "customer@example.com" },
    Subject = "Welcome to Render25!",
    Html = "<h1>Welcome aboard!</h1><p>Transactional email sent via C#.</p>",
    Text = "Welcome aboard! Transactional email sent via C#."
});

Console.WriteLine($"Dispatched Message ID: {response.Id}");

Note

Set RENDER25_API_KEY in your appsettings.json or environment variables.

CC, BCC & Custom Reply-To

Advanced.cs
using Render25;

var client = new Render25Client();

var response = await client.Emails.SendAsync(new SendEmailOptions
{
    From = "support@yourdomain.com",
    To = new List<string> { "client@example.com" },
    Cc = new List<string> { "accounting@example.com" },
    Bcc = new List<string> { "archive@example.com" },
    ReplyTo = "helpdesk@yourdomain.com",
    Subject = "Invoice #1042 Ready",
    Html = "<p>Your monthly statement is ready.</p>"
});

File Attachments

Attach PDF invoices or spreadsheets by passing raw byte[] with Attachment.FromBytes:

Attachments.cs
using Render25;

var client = new Render25Client();

byte[] pdfBytes = await File.ReadAllBytesAsync("invoice.pdf");

var response = await client.Emails.SendAsync(new SendEmailOptions
{
    From = "billing@yourdomain.com",
    To = new List<string> { "client@example.com" },
    Subject = "Your Invoice #1042",
    Html = "<p>Please find your receipt attached below.</p>",
    Attachments = new List<Attachment>
    {
        Attachment.FromBytes("invoice_1042.pdf", pdfBytes, "application/pdf")
    }
});

ASP.NET Core Integration

Program.cs
var builder = WebApplication.CreateBuilder(args);

// Register singleton
builder.Services.AddSingleton(new Render25Client(builder.Configuration["Render25:ApiKey"]));

var app = builder.Build();

app.MapPost("/api/send-receipt", async (Render25Client render25, SendEmailOptions opts) =>
{
    var res = await render25.Emails.SendAsync(opts);
    return Results.Ok(new { success = true, id = res.Id });
});

app.Run();