Platform Evolution
Assessment run-2026-07-27-1 · 213 of 213 repos assessed
Repos / mailtemplate-service

mailtemplate-service

WCF service that generates emails from a large catalogue of predefined, localised HTML templates and either returns them or forwards them to the mail service for sending.

57 · amberhighkernelOn-premZDD: not applicableservice

Health score

57

0 to 100 across seven weighted factors; nothing is hidden. Green is 75 and above, amber 50 to 74, red below 50. How scoring works.


Runtime currency / 25
0
.NET Framework, out of mainstream support
Legacy transport / 15
2
Hosts WCF or SOAP endpoints with no successor on modern .NET
Test posture / 15
15
Good test coverage
Security hygiene / 15
15
No credentials found in source
Dangerous coupling / 15
11
depends on pinning component(s): mail-service
Activity / 10
10
Actively maintained
Deployment hygiene / 5
5
CI in place
Health over time
2026-07-24 (run-2026-07-24-1): 572026-07-27 (run-2026-07-27-1): 57
No change since 2026-07-24 (57 to 57).

Facts

Languagescsharp
FrameworksWCF, ASP.NET (IIS host)
Runtimes.NET Framework 4.7.2, .NET Framework 4.6.2, .NET Standard 2.0
Tests / CIgood / CI in place
Last commit2026-07-22
OwnerOwner unknown (mapping to be curated)
DomainCustomer communications (system generated; curate in repo-owners.json to override)
Product areaShared platform
HostedOn-prem Deployed to our own machines
  • Release "\ops\mailtemplate\mailtemplate-service CI": QA: deployment-group phase (agents on our own machines)
  • Release "\ops\mailtemplate\mailtemplate-service CI": Staging: deployment-group phase (agents on our own machines)
  • Release "\ops\mailtemplate\mailtemplate-service CI": QA Azure: deployment-group phase (agents on our own machines)
  • Release "\ops\mailtemplate\mailtemplate-service CI": Staging Azure: deployment-group phase (agents on our own machines)
  • Release "\ops\mailtemplate\mailtemplate-service CI": Production: deployment-group phase (agents on our own machines)
Releases2 release pipeline(s): \ops\mailtemplate\mailtemplate-service CI; \ops\mailtemplate\mailtemplate-service stealth
Integrationwcf, rest
SourceOpen in Azure DevOps

Risk flags

Each flag links to its glossary definition.

Dependencies in context

Laying out the graph…
greenamberreddata store (square, dashed link)Node size follows fan-in. Click any node to open it.

Entanglement

kernel Bound into the core by 2 mechanism(s).

Detaches when its pinning dependencies are cut or multi-targeted (mail-service); and when it is itself a binding point: unpinning it releases its consumers; and when its WCF surface gains a modern interface or its WCF calls move to one.

This repo is itself a binding point: see what cutting it unlocks.

Capability duplication

Part of the Mail sending family (retire): Legacy WCF templating pair of mail-service; 18 dependents

Migration playbooks

Generated from this repo's assessment data: what is feasible, what blocks it, and the steps in order. Ratings: green means actionable now, amber means sequence other work first, red means blocked, grey means not applicable.

ZDD adoption

Not applicable

Not a deployed service (libraries, database definitions, desktop apps) or a retirement candidate not worth the investment. Retirement or consolidation candidate; do not invest in ZDD adoption.

SQL Server exit

Not applicable

No SQL Server dependency is recorded for this repo. Nothing to migrate.

Containerisation

Retire instead

This repo is a retirement or consolidation candidate; containerising it would be investment in something we intend to switch off.

Recommended actions

Retire mailtemplate-service

Legacy WCF templating pair of mail-service; 18 dependents. Part of the Mail sending consolidation: Complete the notifications migration so phenix-notifications-api delivers without the WCF pair, then retire mail-service and mailtemplate-service. This is one of the stage 2 binding-point cuts.

Impact: A migration never paid for, a pipeline decommissioned and an attack surface removed

proposed

Complete the notifications migration and retire mailtemplate-service

18 dependents; the WCF template half of the legacy mail pair.

Impact: Highest leverage in the programme: releases consumers without touching them

proposed

Assessment notes

mailtemplate-service

Purpose

Central email templating service. Callers send typed requests (dozens of template classes: invoices, receipts, flight alerts, VCC notifications, visa enquiries, supplier remittances, etc.) and the service renders localised HTML emails using resx resources and base templates for multiple brands (TC and TTAND) and cultures, then optionally passes the result to the mail service for delivery.

Tech stack

Core service and IIS-hosted WCF host are old-style .NET Framework 4.7.2 projects; the TC.Mail.Template.ServiceContract and TC.Mail.Template.ServiceClient NuGet packages multi-target net462 and netstandard2.0. Heavy use of resx localisation (en-GB, en-AU, en-IE, nl, fr-CA, etc.) and embedded HTML/PDF resources. A .NET 8 test console tool exists for manual testing.

Deployment

Included with 2 releases: build pipeline mailtemplate-service plus release pipelines \ops\mailtemplate\mailtemplate-service CI and stealth. YAML CI (build.yml) via shared InternalOSS/azure-pipelines-templates, packing the contract/client NuGet packages and building the host with Visual Studio. README badges show releases to QA, Staging, Live, Azure, Training and DR environments.

Dependencies

Internal: mail-service (sends rendered mail via TC.Mail.ServiceClient) and tc-connectionbroker (endpoint resolution). Also consumes internal packages TC.Phenix.ApplicationFramework, TC.Phenix.CompanyInfo, TC.Payments.Models.PaymentConstants and TC.Exceptions.* whose source repos are not confidently mappable. TcWebDetailsApi calls an internal web-details HTTP API through the broker.

Data stores

None; templates and resources are compiled into the service.

Integration points

Inbound WCF (SOAP) service host; outbound WCF to the mail service and brokered REST/HTTP calls for web details.

Code health

Good: 34 test files in TC.Mail.Template.Service.Tests, StyleCop configuration, an actively maintained README, and very recent commits (2026-07-22). CI/CD is fully wired.

Modernisation risks

Same pattern as mail-service: WCF host pinned to .NET Framework 4.7.2 on IIS/Windows. Template logic is embedded in compiled resx/C# classes, so any brand or copy change needs a full build and release. High priority given it is actively changed (recent TTAND branding work) yet stuck on a legacy hosting model.