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 VeilMailThen 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 SettingsSend 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
| Category | Nodes |
|---|---|
VeilMail|Emails | SendEmail, GetEmail, ListEmails |
VeilMail|Templates | ListTemplates, GetTemplate |
VeilMail|Domains | ListDomains |
VeilMail|Audiences | ListAudiences |
VeilMail|Campaigns | ListCampaigns, SendCampaign |
VeilMail|Webhooks | ListWebhooks |
VeilMail|Analytics | GetAnalyticsOverview |
VeilMail|Webhook | VerifySignature |
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
PublicDependencyModuleNames.AddRange(new string[] {
"VeilMail"
});Sending an Email from C++
#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
// 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:
#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.
| Context | Direct API Key | Server Proxy |
|---|---|---|
| Editor tools / testing | Safe | Not needed |
| Dedicated servers | Safe | Not needed |
| Shipped game clients | Unsafe | Required |
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