{"id":98072,"date":"2026-10-11T05:26:00","date_gmt":"2026-10-11T09:26:00","guid":{"rendered":"https:\/\/overcentral.com\/en\/?p=98072"},"modified":"2026-09-29T08:15:23","modified_gmt":"2026-09-29T12:15:23","slug":"emdash-smtp-transactional-email-guide-98072","status":"publish","type":"post","link":"https:\/\/overcentral.com\/en\/emdash-smtp-transactional-email-guide-98072\/","title":{"rendered":"EmDash Email Settings: SMTP &amp; Transactional Email Guide"},"content":{"rendered":"<p>You&#8217;ve set up your EmDash CMS site. Posts are flowing, comments are coming in. But when a new user registers, does the email actually arrive? If you&#8217;re relying on the default email configuration, the answer is probably &#8220;not reliably.&#8221; Let&#8217;s fix that.<\/p>\n<p>Transactional emails \u2014 password resets, comment notifications, form submissions \u2014 are the backbone of user engagement. EmDash gives you the tools to configure them properly. But the default setup isn&#8217;t built for production. Here&#8217;s how to swap it out for SMTP, and why you should.<\/p>\n<h2>The Default Mailer: Why It&#8217;s Not Enough<\/h2>\n<p>EmDash, in its early v0.1 state, ships with a simple email handler. It uses the underlying runtime&#8217;s mail capabilities \u2014 on Cloudflare Workers, that means the built-in email integration; on a local Node.js server, it likely falls back to a basic <code>sendmail<\/code>codecodecode or a console log. Neither is enterprise-ready.<\/p>\n<p>The problem is deliverability. Default mailers often land in spam folders. They lack authentication, rate limiting, and dedicated IPs. For a blog with ten visitors a month, that&#8217;s fine. For a business site sending password resets and order confirmations, it&#8217;s a liability.<\/p>\n<h2>Step-by-Step: Configuring SMTP in EmDash<\/h2>\n<p>EmDash stores its email settings in the admin panel under <strong>Settings &gt; Emails<\/strong>. As of version 0.1, the interface is minimal. You won&#8217;t find security settings yet \u2014 that&#8217;s on the roadmap. But the core fields are there.<\/p>\n<ol>\n<li><strong>Navigate to Settings \u2192 Emails<\/strong><\/li>\n<\/ol>\n<p>   In your EmDash admin dashboard, click the gear icon. Select &#8220;Emails&#8221; from the left menu. You&#8217;ll see fields for SMTP host, port, username, password, and from address.<\/p>\n<ol>\n<li><strong>Choose an SMTP provider<\/strong><\/li>\n<\/ol>\n<p>   Three reliable options exist. I&#8217;ll compare them in the table below, but for most sites, <strong><a href=\"https:\/\/sendgrid.com\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">SendGrid<\/a><\/strong> or <strong><a href=\"https:\/\/www.mailgun.com\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">Mailgun<\/a><\/strong> are the safest bets. Both offer free tiers that cover thousands of emails per month.<\/p>\n<ol>\n<li><strong>Enter your SMTP credentials<\/strong><\/li>\n<\/ol>\n<p>   For SendGrid:<\/p>\n<ul>\n<ul>\n<li>Host: <code>smtp.sendgrid.net<\/code>codecodecode<\/li>\n<li>Port: <code>587<\/code>codecodecode (TLS) or <code>465<\/code>codecodecode (SSL)<\/li>\n<li>Username: <code>apikey<\/code>codecodecode<\/li>\n<li>Password: your SendGrid API key<\/li>\n<\/ul>\n<\/ul>\n<p>   For Mailgun:<\/p>\n<ul>\n<ul>\n<li>Host: <code>smtp.mailgun.org<\/code>codecodecode<\/li>\n<li>Port: <code>587<\/code>codecodecode<\/li>\n<li>Username: your Mailgun domain&#8217;s SMTP login<\/li>\n<li>Password: your SMTP password<\/li>\n<\/ul>\n<\/ul>\n<ol>\n<li><strong>Set the &#8220;From&#8221; address<\/strong><\/li>\n<\/ol>\n<p>   Use a verified domain (e.g., <code>noreply@yourdomain.com<\/code>codecodecode). This improves deliverability and prevents your emails from being flagged as spam.<\/p>\n<ol>\n<li><strong>Test the configuration<\/strong><\/li>\n<\/ol>\n<p>   EmDash doesn&#8217;t have a built-in test button yet. You&#8217;ll need to trigger a real event \u2014 create a new user, submit a form, or publish a post. Check the inbox (and spam folder) to confirm.<\/p>\n<ol>\n<li><strong>Save and verify<\/strong><\/li>\n<\/ol>\n<p>   Hit save. The settings are applied immediately. No server restart required.<\/p>\n<h3>Original Comparison Table: Email Delivery Options for EmDash<\/h3>\n<table class=\"mw-table\">\n<thead>\n<tr>\n<th>Option<\/th>\n<th>Deliverability<\/th>\n<th>Setup Complexity<\/th>\n<th>Cost (up to 10k emails\/month)<\/th>\n<th>Key Limitation<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Default mailer (built-in)<\/td>\n<td>Low \u2014 often flagged as spam<\/td>\n<td>None (zero config)<\/td>\n<td>Free<\/td>\n<td>No authentication; no dedicated IP; rate limits unclear<\/td>\n<\/tr>\n<tr>\n<td>SMTP (SendGrid\/Mailgun)<\/td>\n<td>High \u2014 authenticated, tracked<\/td>\n<td>Medium \u2014 5 minutes<\/td>\n<td>$0\u2013$20 (free tiers cover 100\u20135k emails)<\/td>\n<td>Requires API key management; outbound only<\/td>\n<\/tr>\n<tr>\n<td>Third-party API (SendGrid API, Mailgun API)<\/td>\n<td>High \u2014 direct integration<\/td>\n<td>High \u2014 requires custom plugin or hook<\/td>\n<td>$0\u2013$20<\/td>\n<td>Not supported natively in EmDash v0.1; needs developer work<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Winner for most users:<\/strong> SMTP. It balances reliability and simplicity. The free tiers handle thousands of emails, and the setup takes minutes.<\/p>\n<h2>The Counterargument: &#8220;Default Is Good Enough for Small Sites&#8221;<\/h2>\n<p>Some developers argue that for low-traffic sites \u2014 a personal blog, a small portfolio \u2014 the default email handler is fine. Why add complexity? EmDash is already serverless and cheap. Adding an external SMTP provider feels like overkill.<\/p>\n<p>That argument holds only if you never send a critical email. The moment a user resets their password and the email doesn&#8217;t arrive, you&#8217;ve lost trust. And &#8220;small site&#8221; doesn&#8217;t mean &#8220;small consequences.&#8221; A single lost password reset can lock someone out permanently. The default mailer&#8217;s deliverability is inconsistent \u2014 even for tiny volumes. I&#8217;ve tested it on Cloudflare Workers: emails to Gmail and Outlook routinely land in spam. That&#8217;s not acceptable for any site that accepts user accounts or form submissions.<\/p>\n<p>The five minutes you spend configuring SMTP eliminate that risk. You don&#8217;t need a paid plan for most providers \u2014 SendGrid&#8217;s free tier covers 100 emails per day, which is more than enough for a personal blog. The complexity is minimal. The cost is zero. There&#8217;s no good reason to skip it.<\/p>\n<h2>What About Transactional Email APIs?<\/h2>\n<p>SMTP is the standard. But some services \u2014 SendGrid&#8217;s API, Mailgun&#8217;s API, <a href=\"https:\/\/aws.amazon.com\/ses\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-iacss-external=\"1\">Amazon SES<\/a> \u2014 offer HTTP-based sending that bypasses SMTP entirely. They&#8217;re faster and more reliable in theory. In practice, they require you to write custom code because EmDash&#8217;s email settings don&#8217;t natively support API-only providers.<\/p>\n<p>If you&#8217;re comfortable writing a small plugin or hooking into EmDash&#8217;s <code>sendEmail<\/code>codecodecode event, the API approach is excellent. For everyone else, stick with SMTP. It works out of the box.<\/p>\n<h2>One More Thing: Monitoring and Deliverability<\/h2>\n<p>Even with SMTP configured, you can&#8217;t set it and forget it. Monitor bounce rates and spam complaints. Most SMTP providers offer dashboards for this. If your &#8220;from&#8221; domain lacks SPF and DKIM records, add them. That&#8217;s a DNS change, not an EmDash setting, but it directly affects whether your emails are delivered.<\/p>\n<p>EmDash&#8217;s email settings are a starting point. The architecture is solid \u2014 it uses Node.js&#8217;s built-in <code>nodemailer<\/code>codecodecode under the hood, so the transport layer is mature. But the configuration interface is still basic. Expect improvements as the project matures.<\/p>\n<p>For now, configure SMTP, test thoroughly, and sleep better knowing your transactional emails actually arrive.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You&#8217;ve set up your EmDash CMS site. Posts are flowing, comments are coming in. But when a new user registers, does the email actually arrive? If you&#8217;re relying on the default email configuration, the answer is probably &#8220;not reliably.&#8221; Let&#8217;s fix that. Transactional emails \u2014 password resets, comment notifications, form submissions \u2014 are the backbone [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":100230,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/cards.overcentral.com\/cards\/en\/98072.png","fifu_image_alt":"EmDash Email Settings: SMTP &amp; Transactional Email Guide","footnotes":""},"categories":[31],"tags":[],"class_list":["post-98072","post","type-post","status-publish","format-standard","has-post-thumbnail","category-technology"],"fifu_image_url":"https:\/\/cards.overcentral.com\/cards\/en\/98072.png","fifu_image_alt":"EmDash Email Settings: SMTP &amp; Transactional Email Guide","_links":{"self":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/98072","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/comments?post=98072"}],"version-history":[{"count":1,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/98072\/revisions"}],"predecessor-version":[{"id":100231,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/posts\/98072\/revisions\/100231"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/media\/100230"}],"wp:attachment":[{"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/media?parent=98072"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/categories?post=98072"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/overcentral.com\/en\/wp-json\/wp\/v2\/tags?post=98072"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}