The world runs on email. Book a train ticket? Get an email. Buy something online? Get an order confirmation email. Forgotten your password? No problem - we’ll send you an email. But for developers, working with email can be a chaotic mix of incompatible clients, devices and standards. Dylan Beattie has been building applications that send mail since the 1990s; software that he’s designed and built has sent over a billion emails. In this course, Dylan will teach you everything you need to know to build, send and test email applications using .NET - from the underlying standards that control how internet email works, to libraries and packages like MailKit and MJML, to the architectural patterns you can use to send thousands of emails without slowing down the rest of your system.
Welcome (01:20)
What will you learn in this course? (02:09)
Who is the course for and prerequisites (01:47)
SmtpClient, MailKit and MimeKit (05:16)
What's an SMTP Server - and why do we need one (03:00)
Exploring SMTP with MailPit and telnet (05:57)
Sending Mail with MailKit and MailPit (03:16)
Multipart Messages with MimeKit BodyBuilder (01:47)
Attachments and Inline Images (04:02)
Introduction (01:03)
Scenario and Data Model (01:30)
Building Emails with StringBuilder (20:51)
StringBuilding HTML and Field Replacement (04:17)
Templating Engines Overview (05:34)
Comparing Razor Engines (11:08)
Razor.Templating.Core - Implementing IFileInfo and IFileProvider (15:27)
Templating HTML with Fluid (24:10)
Templating HTML with RazorEngine-NetCore (10:09)
Templating HTML with Razor Components (18:01)
Sending Test Mail with Mailpit (07:49)
Introducing Mailtrap (10:02)
HTML Email - What's The Problem (04:08)
Introducing MJML (15:20)
Running MJML with .NET (21:18)
Templating with MJML (23:49)
Introducing Rockaway (06:58)
Rendering Real World Emails (19:18)
Dynamic PDFs with QuestPDF (23:39)
Creating Data-Driven PDFs (15:57)
Sending Real Emails with MailKit (26:59)
Testing Email Services - Overview (06:19)
Testing Email Services - Deep Dive (41:33)
Review and Recap (01:13)
Email Delivery Considerations (01:32)
Email Address Validation (03:38)
Choosing an SMTP Server (05:04)
Email Domain Validation (04:20)
DNS for Email - SPF, DKIM and DMARC (18:32)
Sending Our First REAL Email (09:09)
Sending Mail Asynchronously with Channels and BackgroundServices (25:40)
Reusing the SMTP Connection (23:17)
Parallel Sending with BackgroundServices and SignalR (58:15)
Distributed Email with EasyNetQ - Overview and Architecture (06:00)
Distributed Email with EasyNetQ - Preparation and Refactoring (10:47)
Distributed Email with EasyNetQ - Implementation (40:56)
Conclusion (08:47)
Course Info
Lifetime access
Add to Cart
Dylan Beattie is a consultant, software developer and international keynote speaker. He’s been building data-driven web applications since the 1990s; he’s managed teams, taught workshops, and worked on everything from tiny standalone websites to complex distributed systems. He’s a Microsoft MVP, and he regularly speaks at conferences and user groups all over the world.
Dylan is the creator of the Rockstar programming language, the director of Ursatile, and the founder of The Linebreakers, the world’s greatest tech comedy party rock band. He’s online at dylanbeattie.net and on Bluesky as @dylanbeatt.ie.
More courses by Dylan Beattie© 2025 Dometrain. All rights reserved.