Unreal Engine SDK

The official Unreal Engine plugin for Veil Mail, with full Blueprint and C++ support. Built on FHttpModule with no external dependencies.

  • Full Blueprint support with categorized nodes
  • C++ API with delegate-based async
  • Project Settings panel (UDeveloperSettings)
  • Test Email editor widget
  • API key stripping for shipping builds
  • UE 5.1+ compatible, no external dependencies

Installation

Clone the plugin into your project's Plugins/ directory:

cd YourProject/Plugins
git clone https://github.com/Resonia-Health/veilmail-unreal.git VeilMail

Then regenerate project files and restart the editor. The plugin will be automatically detected.

Setup

Configure your API key in Edit > Project Settings > Plugins > VeilMail:

  • • API Key — your Veil Mail API key
  • • Base URL — defaults to https://api.veilmail.xyz
  • • Timeout — request timeout in seconds
  • • Strip API Key in Shipping Builds — enabled by default

Blueprint Usage

All API methods are available as Blueprint nodes under the VeilMail category.

Create a Client

// Blueprint: right-click > VeilMail > Create VeilMail Client
// Input: API Key (String), Base URL (String, optional)
// Output: VeilMail Client (Object Reference)

// Or use settings from Project Settings:
// Blueprint: right-click > VeilMail > Create VeilMail Client From Settings

Send an Email

The Send Email node takes From, To, Subject, and Html pins plus an OnComplete delegate that fires with success status and the response.

// Blueprint node: VeilMail > Emails > Send Email
// Inputs:
//   From: hello@yourdomain.com
//   To: user@example.com
//   Subject: Hello from Unreal!
//   Html: <h1>Welcome!</h1>
//   OnComplete: delegate (bSuccess, Response)
// The delegate fires asynchronously when the request completes.

Available Blueprint Categories

CategoryNodes
VeilMail|EmailsSendEmail, GetEmail, ListEmails
VeilMail|TemplatesListTemplates, GetTemplate
VeilMail|DomainsListDomains
VeilMail|AudiencesListAudiences
VeilMail|CampaignsListCampaigns, SendCampaign
VeilMail|WebhooksListWebhooks
VeilMail|AnalyticsGetAnalyticsOverview
VeilMail|WebhookVerifySignature

For endpoints not covered by named nodes, use the Raw Request node which accepts an HTTP method, path, and JSON body string.

C++ Usage

Add VeilMail to your module's Build.cs dependencies:

YourModule.Build.cs
// YourModule.Build.cs
PublicDependencyModuleNames.AddRange(new string[] {
    "VeilMail"
});

Sending an Email from C++

MyActor.cpp
#include "VeilMailClient.h"

void AMyActor::SendWelcomeEmail()
{
    auto* Client = UVeilMailClient::CreateFromSettings();

    FOnVeilMailResponse OnComplete;
    OnComplete.BindDynamic(this, &AMyActor::OnEmailSent);

    Client->SendEmail(
        TEXT("hello@yourdomain.com"),
        TEXT("user@example.com"),
        TEXT("Hello from Unreal!"),
        TEXT("<h1>Welcome!</h1>"),
        OnComplete
    );
}

void AMyActor::OnEmailSent(bool bSuccess, const FVeilMailResponse& Response)
{
    if (bSuccess)
    {
        UE_LOG(LogTemp, Log, TEXT("Email sent! Body: %s"), *Response.Body);
    }
    else
    {
        UE_LOG(LogTemp, Error, TEXT("Email failed: %s"), *Response.ErrorMessage);
    }
}

Raw Request

raw-request.cpp
// Access any API endpoint directly
auto* Client = UVeilMailClient::CreateFromSettings();

FOnVeilMailResponse OnComplete;
OnComplete.BindLambda([](bool bSuccess, const FVeilMailResponse& Response)
{
    // Handle response
});

Client->RawRequest(
    EVeilMailHttpMethod::GET,
    TEXT("/analytics/overview"),
    TEXT(""),
    OnComplete
);

Webhook Verification

The UVeilMailWebhook Blueprint Function Library provides signature verification:

webhook.cpp
#include "VeilMailWebhook.h"

bool bValid = UVeilMailWebhook::VerifySignature(
    Payload,     // FString: raw request body
    Signature,   // FString: X-VeilMail-Signature header
    Secret       // FString: webhook secret
);

Editor Tools

Project Settings

Edit > Project Settings > Plugins > VeilMail — automatically registered via UDeveloperSettings. Configure your API key, base URL, timeout, and shipping build key stripping.

Test Email Widget

Tools > VeilMail: Send Test Email — a Slate-based editor window for sending test emails directly from the editor.

Security

Never ship API keys in game builds

Game clients can be decompiled and network traffic intercepted. For shipped builds, route API calls through a dedicated server.

ContextDirect API KeyServer Proxy
Editor tools / testingSafeNot needed
Dedicated serversSafeNot needed
Shipped game clientsUnsafeRequired

The bStripKeyInShipping setting (enabled by default) prevents the API key from being included in shipping builds.

Install from Source

Clone the repository into your project's Plugins directory:

cd YourProject/Plugins
git clone https://github.com/Resonia-Health/veilmail-unreal.git VeilMail