Public host URL (required for sending)
Outgoing campaign emails contain links and images that need to resolve from a recipient's inbox: the brand logo, unsubscribe link, preferences link, the open-tracking pixel, and per-link click-redirect URLs. CampaignCanvas builds these as absolute URLs.
Inside an HTTP request CampaignCanvas can derive the host from the current request. But campaign sends run inside a background worker (CampaignSendWorker) where no request exists. To make sure URLs in dispatched campaigns point at your public host instead of https://localhost, set Umbraco's WebRouting:UmbracoApplicationUrl in appsettings.json:
{
"Umbraco": {
"CMS": {
"WebRouting": {
"UmbracoApplicationUrl": "https://your-public-host.example.com"
}
}
}
}If you skip this, the logo will be missing from sent emails, click-tracking and unsubscribe links will be unreachable, and open-tracking pixels won't load. Test sends from the backoffice (which do have an HTTP context) will still work, masking the problem — so always validate using a real campaign send to an external mailbox.
SMTP transport
CampaignCanvas reads SMTP settings from Umbraco's Global.Smtp section — the same place Umbraco uses for its own outbound mail:
{
"Umbraco": {
"CMS": {
"Global": {
"Smtp": {
"From": "[email protected]",
"Host": "smtp.yourprovider.com",
"Port": 587,
"SecureSocketOptions": "StartTls",
"Username": "smtp-user",
"Password": "smtp-secret"
}
}
}
}
}For production, prefer an SMTP-relay provider (Postmark, SendGrid, AWS SES, Mailgun) that can sign with DKIM, handle DMARC reports, and process bounce / complaint webhooks. SMTP on its own does not surface bounces, so list hygiene relies on a mail-transfer agent in front of it.
Newsletter settings
Open CampaignCanvas → Settings → Newsletter in the backoffice and configure:
- Default From name + email — used when a campaign doesn't override.
- Reply-to address — optional, used on every outbound campaign.
- Postal address — required by CAN-SPAM and most EU privacy regulators. The renderer refuses to produce a campaign body when this is empty.
- Company legal name — rendered next to the postal address in the mandatory footer.
- Preferences page URL — if you want a "manage your preferences" link in the footer, point this at an Umbraco page that hosts a preferences form. See the Newsletter section once published for the form recipe.