PageSourceSearch

https://docs.keplars.com/docs/getting-started/setup-smtp-keys

html keplars.com collected 2026-10-04 22:26:42 UTC 239,172 bytes, 216 lines download raw bytes

1<!DOCTYPE html><!--bkZv704Jee_dhy1iIrpWd--><html lang="en" class="inter_5901b7c6-module__ec5Qua__variable ibm_plex_mono_2e6493f3-module__b3Glxa__variable font-sans"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/23b7a97ae3b5c134-s.p.2902b61f.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/99e609270109b47d-s.p.64b9304e.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/a7e15459c1805da0-s.p.ec654d65.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/effe91970fc4db64-s.p.19510058.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/435749c5f33da7da.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/4320fd33b5d6a319.js"/>
1<script src="/_next/static/chunks/5e7be368af53d513.js" async=""></script>
1<script src="/_next/static/chunks/73582f4fc1b22c03.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-d8e2f7e4b3356ba2.js" async=""></script>
1<script src="/_next/static/chunks/03c8fa90f00e78ea.js" async=""></script>
1<script src="/_next/static/chunks/7dea3aaf62b2f0f9.js" async=""></script>
1<script src="/_next/static/chunks/d96012bcfc98706a.js" async=""></script>
1<script src="/_next/static/chunks/73e3194f06db260e.js" async=""></script>
1<script src="/_next/static/chunks/69a6ace669b8c0cc.js" async=""></script>
1<script src="/_next/static/chunks/8f701c9ef49b33a4.js" async=""></script>
1<script src="/_next/static/chunks/4fe5999e8d94b4f1.js" async=""></script>
1<script src="/_next/static/chunks/2569e9621f389b03.js" async=""></script>
1<script src="/_next/static/chunks/c70c7d6e1faf4584.js" async=""></script>
1<script src="/_next/static/chunks/85f6710bd4a11f19.js" async=""></script>
1<script src="/_next/static/chunks/970de797a3acbbdc.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Setup SMTP Keys</title><meta name="description" content="Generate SMTP credentials for connected email accounts to use with traditional email clients"/><link rel="shortcut icon" href="/favicon-32x32.svg" type="image/svg+xml"/><link rel="icon" href="/favicon.ico?favicon.0b3bf435.ico" sizes="256x256" type="image/x-icon"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><link rel="icon" href="/favicon-32x32.svg" sizes="32x32" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-touch-icon.svg" sizes="180x180" type="image/svg+xml"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="flex flex-col min-h-screen"><div hidden=""><!--$--><!--/$--></div>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<!--$--><div class="bg-fd-secondary/50 p-3 empty:hidden"></div><!--/$--><header class="fixed top-0 left-0 right-0 z-50 h-14 border-b border-fd-border bg-fd-background/95 backdrop-blur"><div class="flex h-full items-center gap-4 px-4"><a class="flex items-center" href="/docs"><img alt="Keplars" loading="lazy" width="100" height="32" decoding="async" data-nimg="1" style="color:transparent;height:32px;width:auto" src="/assets/keplers_logo.svg"/></a><nav class="hidden md:flex items-center gap-1 ml-4"><a class="px-3 py-1.5 rounded-md text-sm font-medium transition-colors bg-fd-accent text-fd-accent-foreground" href="/docs">Documentation</a><a class="px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-fd-muted-foreground hover:text-fd-foreground hover:bg-fd-accent/50" href="/api-reference">API Reference</a><a class="px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-fd-muted-foreground hover:text-fd-foreground hover:bg-fd-accent/50" href="/build-with-ai">Build with AI</a><a class="px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-fd-muted-foreground hover:text-fd-foreground hover:bg-fd-accent/50" href="/sdks">SDKs</a><a class="px-3 py-1.5 rounded-md text-sm font-medium transition-colors text-fd-muted-foreground hover:text-fd-foreground hover:bg-fd-accent/50" href="/integrations">Integrations</a></nav><div class="ml-auto"><a target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1.5 rounded-md text-sm font-medium bg-[#ff5252] text-white hover:bg-[#e04646] transition-colors" href="https://dash.keplars.com">Get Started</a></div></div></header><div id="nd-docs-layout" data-sidebar-collapsed="false" data-column-changed="false" style="grid-template:&quot;sidebar sidebar header toc toc&quot;
2&quot;sidebar sidebar toc-popover toc toc&quot;
3&quot;sidebar sidebar main toc toc&quot; 1fr / minmax(min-content, 1fr) var(--fd-sidebar-col) minmax(0, calc(var(--fd-layout-width,97rem) - var(--fd-sidebar-width) - var(--fd-toc-width))) var(--fd-toc-width) minmax(min-content, 1fr);--fd-docs-row-1:var(--fd-banner-height, 0px);--fd-docs-row-2:calc(var(--fd-docs-row-1) + var(--fd-header-height));--fd-docs-row-3:calc(var(--fd-docs-row-2) + var(--fd-toc-popover-height));--fd-sidebar-col:var(--fd-sidebar-width)" class="grid overflow-x-clip min-h-(--fd-docs-height) [--fd-docs-height:100dvh] [--fd-header-height:0px] [--fd-toc-popover-height:0px] [--fd-sidebar-width:0px] [--fd-toc-width:0px] data-[column-changed=true]:transition-[grid-template-columns]"><div data-sidebar-placeholder="" class="sticky top-(--fd-docs-row-1) z-20 [grid-area:sidebar] pointer-events-none *:pointer-events-auto h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] md:layout:[--fd-sidebar-width:268px] max-md:hidden"><aside id="nd-sidebar" data-collapsed="false" data-hovered="false" class="absolute flex flex-col w-full inset-s-0 inset-y-0 items-end bg-fd-card text-sm border-e duration-250 *:w-(--fd-sidebar-width)"><div class="flex flex-col gap-3 p-4 pb-2"><div class="flex"><a class="inline-flex text-[0.9375rem] items-center gap-2.5 font-medium me-auto" href="/"></a><button type="button" aria-label="Collapse Sidebar" data-collapsed="false" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-4.5 mb-auto text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button></div><button type="button" data-search-full="" class="inline-flex items-center gap-2 rounded-lg border bg-fd-secondary/50 p-1.5 ps-2 text-sm text-fd-muted-foreground transition-colors hover:bg-fd-accent hover:text-fd-accent-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search size-4" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg>Search<div class="ms-auto inline-flex gap-0.5"><kbd class="rounded-md border bg-fd-background px-1.5">⌘</kbd><kbd class="rounded-md border bg-fd-background px-1.5">K</kbd></div></button></div><div dir="ltr" class="overflow-hidden min-h-0 flex-1" style="position:relative;--radix-scroll-area-corner-width:0px;--radix-scroll-area-corner-height:0px"><style>[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}</style><div data-radix-scroll-area-viewport="" class="size-full rounded-[inherit] *:flex! *:flex-col! *:gap-0.5! p-4 overscroll-contain mask-[linear-gradient(to_bottom,transparent,white_12px,white_calc(100%-12px),transparent)]" style="overflow-x:hidden;overflow-y:hidden"><div style="min-width:100%;display:table"><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground
3/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs">Overview</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Introduction</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/introduction/quickstart">Quickstart Guide</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Getting Started</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/authentication">Authentication</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/two-factor-authentication">Two-Factor Authentication</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/email-connection">Email Connection</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/setup-api-keys">Setup API Keys</a><a data-active="true" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/setup-smtp-keys">Setup SMTP Keys</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/send-emails">Send Emails</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground
3/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/sandbox-mode">Sandbox Mode</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/schedule-emails">Schedule Emails</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/custom-domains">Custom Domains</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/reply-to">Reply-To Address</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/email-templates">Email Templates</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/getting-started/webhooks">Webhooks</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Marketing</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/marketing">Marketing</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/marketing/campaigns">Campaign Guide</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Enceladas Editor</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground
3/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/html-editor">Enceladas Editor</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/html-editor/import-zip">Import ZIP</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/html-editor/template-variables">Template Variables</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Migrations</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/migrations">Migration Guides</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/migrations/from-sendgrid">Migrate from SendGrid</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/migrations/from-mailgun">Migrate from Mailgun</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/migrations/from-aws-ses">Migrate from AWS SES</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Automations</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/automations">Automations</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground
3/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/automations/building-automations">Building Automations</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/automations/node-reference">Node Reference</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">CLI</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/cli">CLI Overview</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/cli/commands">Command Reference</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Template Libraries</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/template-libraries">Template Libraries</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/template-libraries/react-email">React Email</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/template-libraries/mjml">MJML</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/template-libraries/handlebars">Handlebars</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground
3/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/template-libraries/pug-ejs">Pug &amp; EJS</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Deliverability</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/deliverability">Deliverability</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/deliverability/authentication">Email Authentication</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/deliverability/bounce-handling">Bounce Handling</a><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/deliverability/list-hygiene">List Hygiene</a><p class="inline-flex items-center gap-2 mb-1 px-2 mt-6 empty:mb-0 [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 first:mt-0" style="padding-inline-start:calc(2 * var(--spacing))">Troubleshooting</p><a data-active="false" class="relative flex flex-row items-center gap-2 rounded-lg p-2 text-start text-fd-muted-foreground wrap-anywhere [&amp;_svg]:size-4 [&amp;_svg]:shrink-0 transition-colors hover:bg-fd-accent/50 hover:text-fd-accent-foreground/80 hover:transition-none data-[active=true]:bg-fd-primary/10 data-[active=true]:text-fd-primary data-[active=true]:hover:transition-colors" style="padding-inline-start:calc(2 * var(--spacing))" href="/docs/troubleshooting/common-errors">Common Errors</a></div></div></div><div class="flex flex-col p-4 pt-2"><div class="flex text-fd-muted-foreground items-center border bg-fd-secondary/50 p-0.5 pe-0 rounded-lg empty:hidden"><button class="inline-flex items-center border p-1 overflow-hidden px-1 py-0 border-y-0 border-e-0 rounded-none ms-auto *:rounded-md" aria-label="Toggle Theme" data-theme-toggle=""><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sun size-6.5 p-1.5 text-fd-muted-foreground" aria-hidden="true"><circle cx="12" cy="12" r="4"></circle><path d="M12 2v2"></path><path d="M12 20v2"></path><path d="m4.93 4.93 1.41 1.41"></path><path d="m17.66 17.66 1.41 1.41"></path><path d="M2 12h2"></path><path d="M20 12h2"></path><path d="m6.34 17.66-1.41 1.41"></path><path d="m19.07 4.93-1.41 1.41"></path></svg><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon size-6.5 p-1.5 text-fd-muted-foreground" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button></div></div></aside></div>
3<div data-sidebar-panel="" class="fixed flex top-[calc(--spacing(4)+var(--fd-docs-row-3))] inset-s-4 shadow-lg transition-opacity rounded-xl p-0.5 border bg-fd-muted text-fd-muted-foreground z-10 pointer-events-none opacity-0"><button type="button" aria-label="Collapse Sidebar" data-collapsed="false" class="inline-flex items-center justify-center text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-4.5 rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path></svg></button><button type="button" class="inline-flex items-center justify-center text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring hover:bg-fd-accent hover:text-fd-accent-foreground p-1.5 [&amp;_svg]:size-4.5 rounded-lg" data-search="" aria-label="Open Search"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg></button></div><div data-state="closed" data-toc-popover="" class="sticky top-(--fd-docs-row-2) z-10 [grid-area:toc-popover] h-(--fd-toc-popover-height) xl:hidden max-xl:layout:[--fd-toc-popover-height:--spacing(10)]"><header class="border-b backdrop-blur-sm transition-colors bg-fd-background/80"><button type="button" aria-controls="radix-_R_5bsnp5ulb_" aria-expanded="false" data-state="closed" class="flex w-full h-10 items-center text-sm text-fd-muted-foreground gap-2.5 px-4 py-2.5 text-start focus-visible:outline-none [&amp;_svg]:size-4 md:px-6" data-toc-popover-trigger=""><svg role="progressbar" viewBox="0 0 18 18" aria-valuenow="0" aria-valuemin="0" aria-valuemax="1" style="width:18px;height:18px" class="shrink-0"><circle cx="9" cy="9" r="7.5" fill="none" stroke-width="1.5" class="stroke-current/25"></circle><circle cx="9" cy="9" r="7.5" fill="none" stroke-width="1.5" stroke="currentColor" stroke-dasharray="47.12388980384689" stroke-dashoffset="47.12388980384689" stroke-linecap="round" transform="rotate(-90 9 9)" class="transition-all"></circle></svg><span class="grid flex-1 *:my-auto *:row-start-1 *:col-start-1"><span class="truncate transition-[opacity,translate,color]">Setup SMTP Keys</span><span class="truncate transition-[opacity,translate] opacity-0 translate-y-full pointer-events-none"></span></span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down shrink-0 transition-transform mx-0.5" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div data-state="closed" id="radix-_R_5bsnp5ulb_" hidden="" data-toc-popover-content="" class="overflow-hidden"></div></header></div><article id="nd-page" data-full="false" class="flex flex-col w-full max-w-[900px] mx-auto [grid-area:main] px-4 py-6 gap-4 md:px-6 md:pt-8 xl:px-8 xl:pt-14"><h1 class="text-[1.75em] font-semibold">Setup SMTP Keys</h1><p class="mb-8 text-lg text-fd-muted-foreground">Generate SMTP credentials for connected email accounts to use with traditional email clients</p><div class="prose flex-1"><p>Generate SMTP credentials to use your connected email accounts with traditional email libraries like Nodemailer, PHPMailer, or built-in SMTP clients.</p>
4<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info size-5 -me-0.5 fill-(--callout-color) text-fd-card" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p><strong>SMTP Credentials:</strong> Use your connected Gmail/Outlook accounts with any SMTP-compatible email library or application.</p></div></div></div>
5<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="generate-smtp-credentials"><a data-card="" href="#generate-smtp-credentials" class="peer">Generate SMTP Credentials</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
6<div class="fd-steps"><h3 class="flex scroll-m-28 flex-row items-center gap-2" id="access-smtp-section"><a data-card="" href="#access-smtp-section" class="peer">Access SMTP Section</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3><ol>
7<li>Sign in to <a href="https://dash.keplars.com" rel="noreferrer noopener" target="_blank">dash.keplars.com</a></li>
8<li>Navigate to <strong>SMTP Credentials</strong> in the sidebar</li>
9<li>Click <strong>Generate SMTP Credentials</strong></li>
10</ol><h3 class="flex scroll-m-28 flex-row items-center gap-2" id="configure-credentials"><a data-card="" href="#configure-credentials" class="peer">Configure Credentials</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3><ol>
11<li>Select your connected email account</li>
12<li>Enter a descriptive name (e.g., &quot;Production App&quot;)</li>
13<li>Click <strong>Generate</strong></li>
14</ol><h3 class="flex scroll-m-28 flex-row items-center gap-2" id="save-credentials"><a data-card="" href="#save-credentials" class="peer">
14Save Credentials</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3><div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-warning, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert size-5 -me-0.5 fill-(--callout-color) text-fd-card" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p><strong>Important:</strong> Copy your SMTP credentials immediately - they&#x27;re shown only once.</p></div></div></div><ol>
15<li>Copy the SMTP username and password</li>
16<li>Store them securely in your environment variables</li>
17<li>Click <strong>Done</strong></li>
18</ol></div>
19<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="connection-settings"><a data-card="" href="#connection-settings" class="peer">Connection Settings</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
20<p>Use these settings with any SMTP client:</p>
21<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span>Host: smtp.keplars.com</span></span>
22<span class="line"><span>Port: 587 (recommended - industry standard)</span></span>
23<span class="line"><span>      or 2525 (legacy - will be deprecated)</span></span>
24<span class="line"><span>Security: STARTTLS</span></span>
25<span class="line"><span>Username: [Your generated username]</span></span>
26<span class="line"><span>Password: [Your generated password]</span></span></code></pre></div></figure>
27<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info size-5 -me-0.5 fill-(--callout-color) text-fd-card" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p><strong>Port 587</strong> is the industry-standard SMTP submission port and is recommended for all new integrations. Port 2525 is supported for backward compatibility but will be deprecated in the future.</p></div></div></div>
28<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="smtp-capabilities--limitations"><a data-card="" href="#smtp-capabilities--limitations" class="peer">SMTP Capabilities &amp; Limitations</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
29<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-warning, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert size-5 -me-0.5 fill-(--callout-color) text-fd-card" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p><strong>SMTP vs API Features:</strong></p><p><strong>✅ SMTP Supports:</strong></p><ul>
30<li>Raw email content (subject, body, HTML)</li>
31<li>Custom sender display names (e.g., <code>From: John Doe &lt;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c3a9acabad83a6bba2aeb3afa6eda0acae">[email&#160;protected]</a>&gt;</code>)</li>
32<li>Multiple recipients (To)</li>
33<li>File attachments</li>
34<li>Custom headers</li>
35</ul><p><strong>❌ SMTP Does NOT Support:</strong></p><ul>
36<li><strong>Email templates</strong> - Templates are only available via the <a href="/getting-started/send-emails">REST API</a></li>
37<li>Template parameters and dynamic content</li>
38<li>Advanced features like AI-generated content</li>
39</ul><p><strong>When to use SMTP:</strong></p><ul>
40<li>Legacy applications that can&#x27;t make HTTP requests</li>
41<li>Existing codebases using SMTP libraries</li>
42<li>Drop-in replacement for traditional SMTP servers</li>
43</ul><p><strong>When to use the API:</strong></p><ul>
44<li>New integrations and modern applications</li>
45<li>When you need email templates</li>
46<li>Better error handling and debugging</li>
47<li>Advanced features and analytics</li>
48</ul></div></div></div>
49<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="code-examples"><a data-card="" href="#code-examples" class="peer">Code Examples</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
50<div dir="ltr" data-orientation="horizontal" class="flex flex-col overflow-hidden rounded-xl border bg-fd-secondary my-4"><div role="tablist" aria-orientation="horizontal" class="flex gap-3.5 text-fd-secondary-foreground overflow-x-auto px-4 not-prose" tabindex="-1" data-orientation="horizontal" style="outline:none"><button type="button" role="tab" aria-selected="true" aria-controls="radix-_R_nr9bsnp5ulb_-content-node.js" data-state="active" id="radix-_R_nr9bsnp5ulb_-trigger-node.js" class="inline-flex items-center gap-2 whitespace-nowrap text-fd-muted-foreground border-b border-transparent py-2 text-sm font-medium transition-colors [&amp;_svg]:size-4 hover:text-fd-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-fd-primary data-[state=active]:text-fd-primary" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">Node.js</button><button type="button" role="tab" aria-selected="false" aria-controls="radix-_R_nr9bsnp5ulb_-content-python" data-state="inactive" id="radix-_R_nr9bsnp5ulb_-trigger-python" class="inline-flex items-center gap-2 whitespace-nowrap text-fd-muted-foreground border-b border-transparent py-2 text-sm font-medium transition-colors [&amp;_svg]:size-4 hover:text-fd-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-fd-primary data-[state=active]:text-fd-primary" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">Python</button><button type="button" role="tab" aria-selected="false" aria-controls="radix-_R_nr9bsnp5ulb_-content-php" data-state="inactive" id="radix-_R_nr9bsnp5ulb_-trigger-php" class="inline-flex items-center gap-2 whitespace-nowrap text-fd-muted-foreground border-b border-transparent py-2 text-sm font-medium transition-colors [&amp;_svg]:size-4 hover:text-fd-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-fd-primary data-[state=active]:text-fd-primary" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">PHP</button><button type="button" role="tab" aria-selected="false" aria-controls="radix-_R_nr9bsnp5ulb_-content-go" data-state="inactive" id="radix-_R_nr9bsnp5ulb_-trigger-go" class="inline-flex items-center gap-2 whitespace-nowrap text-fd-muted-foreground border-b border-transparent py-2 text-sm font-medium transition-colors [&amp;_svg]:size-4 hover:text-fd-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=active]:border-fd-primary data-[state=active]:text-fd-primary" tabindex="-1" data-orientation="horizontal" data-radix-collection-item="">Go</button></div><div data-state="active" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-_R_nr9bsnp5ulb_-trigger-node.js" id="radix-_R_nr9bsnp5ulb_-content-node.js" tabindex="0" class="p-4 text-[0.9375rem] bg-fd-background rounded-xl outline-none prose-no-margin data-[state=inactive]:hidden [&amp;&gt;figure:only-child]:-m-4 [&amp;&gt;figure:only-child]:border-none" style="animation-duration:0s"><figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes g
50ithub-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> nodemailer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> require</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;nodemailer&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
51<span class="line"></span>
52<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> transporter</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> nodemailer.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">createTransporter</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">({</span></span>
53<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  host: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;smtp.keplars.com&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
54<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  port: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">587</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
55<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  secure: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">// Enable STARTTLS (upgrades connection to TLS)</span></span>
56<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  auth: {</span></span>
57<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    user: process.env.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">KEPLARS_SMTP_USERNAME</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
58<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    pass: process.env.</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">KEPLARS_SMTP_PASSWORD</span></span>
59<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  }</span></span>
60<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">});</span></span>
61<span class="line"></span>
62<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">async</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> function</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> sendEmail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span>
63<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">  await</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> transporter.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sendMail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">
63({</span></span>
64<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    from: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="10697f65623d737f7e7e75736475743d757d71797c50777d71797c3e737f7d">[email&#160;protected]</a>&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
65<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    to: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="681a0d0b0118010d061c280d10090518040d460b0705">[email&#160;protected]</a>&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
66<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    subject: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;Hello from Nodemailer&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">,</span></span>
67<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    text: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;This email was sent using SMTP credentials&#x27;</span></span>
68<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  });</span></span>
69<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
70<span class="line"></span>
71<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">sendEmail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">()</span></span>
72<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">then</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(() </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">log</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;Email sent successfully&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">))</span></span>
73<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">  .</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">catch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#E36209;--shiki-dark:#FFAB70">error</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> =&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> console.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">error</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;Error:&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, error));</span></span></code></pre></div></figure><p><strong>Install:</strong></p><figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> nodemailer</span></span></code></pre></div></figure></div><div data-state="inactive" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-_R_nr9bsnp5ulb_-trigger-python" id="radix-_R_nr9bsnp5ulb_-content-python" tabindex="0" class="p-4 text-[0.9375rem] bg-fd-background rounded-xl outline-none prose-no-margin data-[state=inactive]:hidden [&amp;&gt;figure:only-child]:-m-4 [&amp;&gt;figure:only-child]:border-none"><figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes g
73ithub-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> smtplib</span></span>
74<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> email.mime.text </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> MIMEText</span></span>
75<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">from</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> email.mime.multipart </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> MIMEMultipart</span></span>
76<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> os</span></span>
77<span class="line"></span>
78<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># SMTP Configuration</span></span>
79<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">smtp_username </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> os.getenv(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;KEPLARS_SMTP_USERNAME&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
80<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">smtp_password </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> os.getenv(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;KEPLARS_SMTP_PASSWORD&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
81<span class="line"></span>
82<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Create message</span></span>
83<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">message </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> MIMEMultipart()</span></span>
84<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">message[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;From&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0d7462787f206e626363686e7968692068606c64614d6a606c6461236e6260">[email&#160;protected]</a>&#x27;</span></span>
85<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">
85message[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;To&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="146671777d647d717a6054716c75796478713a777b79">[email&#160;protected]</a>&#x27;</span></span>
86<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">message[</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;Subject&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">] </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;Hello from Python&#x27;</span></span>
87<span class="line"></span>
88<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">body </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;This email was sent using SMTP credentials&#x27;</span></span>
89<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">message.attach(MIMEText(body, </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;plain&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">))</span></span>
90<span class="line"></span>
91<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Send email</span></span>
92<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">try</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">:</span></span>
93<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    server </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> smtplib.SMTP(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;smtp.keplars.com&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">587</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
94<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    server.starttls()  </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># Enable STARTTLS encryption</span></span>
95<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    server.login(smtp_username, smtp_password)</span></span>
96<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    server.send_message(message)</span></span>
97<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    server.quit()</span></span>
98<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;Email sent successfully&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
99<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">except</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> Exception</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> as</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> e:</span></span>
100<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    print</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">f</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;Error: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">{</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">e</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">}</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span></code></pre></div></figure><p><strong>Note:</strong> <code>smtplib</code> is part of Python&#x27;
100s standard library (built-in since Python 2.6), so no installation is required.</p></div><div data-state="inactive" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-_R_nr9bsnp5ulb_-trigger-php" id="radix-_R_nr9bsnp5ulb_-content-php" tabindex="0" class="p-4 text-[0.9375rem] bg-fd-background rounded-xl outline-none prose-no-margin data-[state=inactive]:hidden [&amp;&gt;figure:only-child]:-m-4 [&amp;&gt;figure:only-child]:border-none"><figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">&lt;?</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">php</span></span>
101<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> PHPMailer\PHPMailer\PHPMailer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
102<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> PHPMailer\PHPMailer\SMTP</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
103<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">use</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> PHPMailer\PHPMailer\Exception</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
104<span class="line"></span>
105<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">require</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;vendor/autoload.php&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
106<span class="line"></span>
107<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$mail </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> new</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> PHPMailer</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
108<span class="line"></span>
109<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">try</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
110<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Server settings</span></span>
111<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">isSMTP</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
112<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Host </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;smtp.keplars.com&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
113<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">SMTPAuth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> true</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
114<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Username </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> getenv</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;KEPLARS_SMTP_USERNAME&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
115<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Password </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> getenv</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;KEPLARS_SMTP_PASSWORD&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
116<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">SMTPSecure </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> PHPMailer</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">::</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">ENCRYPTION_STARTTLS</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
117<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Port </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> 587</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
118<span class="line"></span>
119<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Recipients</span></span>
120<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">setFrom</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="c6bfa9b3b4eba5a9a8a8a3a5b2a3a2eba3aba7afaa86a1aba7afaae8a5a9ab">[email&#160;protected]</a>&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
121<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">addAddress</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&#x27;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="790b1c1a1009101c170d391c01181409151c571a1614">[email&#160;protected]</a>&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
122<span class="line"></span>
123<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Content</span></span>
124<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">isHTML</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">
124false</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">);</span></span>
125<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Subject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;Hello from PHPMailer&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
126<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">Body </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;This email was sent using SMTP credentials&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
127<span class="line"></span>
128<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    $mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">send</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">();</span></span>
129<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &#x27;Email sent successfully&#x27;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
130<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">} </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">catch</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">Exception</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> $e) {</span></span>
131<span class="line"><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">    echo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Error: {</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">$mail</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">-&gt;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">ErrorInfo</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">}&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">;</span></span>
132<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
133<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">?&gt;</span></span></code></pre></div></figure><p><strong>Install:</strong></p><figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">
133composer</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> require</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> phpmailer/phpmailer</span></span></code></pre></div></figure></div><div data-state="inactive" data-orientation="horizontal" role="tabpanel" aria-labelledby="radix-_R_nr9bsnp5ulb_-trigger-go" id="radix-_R_nr9bsnp5ulb_-content-go" tabindex="0" class="p-4 text-[0.9375rem] bg-fd-background rounded-xl outline-none prose-no-margin data-[state=inactive]:hidden [&amp;&gt;figure:only-child]:-m-4 [&amp;&gt;figure:only-child]:border-none"><figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">package</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span></span>
134<span class="line"></span>
135<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> (</span></span>
136<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">    &quot;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">fmt</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span></span>
137<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">    &quot;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">net/smtp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span></span>
138<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">    &quot;</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">os</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span></span>
139<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
140<span class="line"></span>
141<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">func</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0"> main</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">() {</span></span>
142<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // SMTP Configuration</span></span>
143<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    smtpHost </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;smtp.keplars.com&quot;</span></span>
144<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    smtpPort </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;587&quot;</span></span>
145<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    username </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> os.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Getenv</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;KEPLARS_SMTP_USERNAME&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
146<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    password </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> os.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Getenv</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;KEPLARS_SMTP_PASSWORD&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
147<span class="line"></span>
148<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Message</span></span>
149<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    from </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="aad3c5dfd887c9c5c4c4cfc9decfce87cfc7cbc3c6eacdc7cbc3c684c9c5c7">[email&#160;protected]</a>&quot;</span></span>
150<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    to </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> []</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">string</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">
150{</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d7a5b2b4bea7beb2b9a397b2afb6baa7bbb2f9b4b8ba">[email&#160;protected]</a>&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span>
151<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    subject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;Subject: Hello from Go</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span></span>
152<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    body </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;This email was sent using SMTP credentials&quot;</span></span>
153<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    message </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> []</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">byte</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(subject </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF"> &quot;</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583"> +</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> body)</span></span>
154<span class="line"></span>
155<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Authentication</span></span>
156<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    auth </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> smtp.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">PlainAuth</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, username, password, smtpHost)</span></span>
157<span class="line"></span>
158<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D">    // Send email with STARTTLS</span></span>
159<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    err </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">:=</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> smtp.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">SendMail</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span></span>
160<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        smtpHost</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;:&quot;</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">+</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">smtpPort,</span></span>
161<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        auth,</span></span>
162<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        from,</span></span>
163<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        to,</span></span>
164<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        message,</span></span>
165<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    )</span></span>
166<span class="line"></span>
167<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">    if</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> err </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">!=</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF"> nil</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8"> {</span></span>
168<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">        fmt.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Printf</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Error: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF">%v\n</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">, err)</span></span>
169<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">        return</span></span>
170<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    }</span></span>
171<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">    fmt.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0">Println</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">&quot;Email sent successfully&quot;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">)</span></span>
172<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">}</span></span></code></pre></div></figure><p><strong>Note:</strong> Go&#x27;s <code>smtp.SendMail</code> automatically uses STARTTLS when available on port 587.</p></div></div>
173<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-info, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-info size-5 -me-0.5 fill-(--callout-color) text-fd-card" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 16v-4"></path><path d="M12 8h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p><strong>Understanding STARTTLS Security:</strong></p><p>The <code>secure: false</code> setting (in Node.js/similar libraries) enables <strong>STARTTLS</strong> encryption, which is the recommended security method for port 587:</p><ul>
174<li><strong>Connection Flow</strong>: Starts as plaintext → Client sends <code>STARTTLS</code> command → Connection upgrades to TLS encryption → All data (credentials, emails) transmitted securely</li>
175<li><strong>Industry Standard</strong>: Port 587 with STARTTLS is the modern standard for email submission (RFC 6409)</li>
176<li><strong>Not Insecure</strong>: Despite the name, <code>secure: false</code> enables encryption via STARTTLS upgrade</li>
177</ul><p>Alternative: <code>secure: true</code> (Port 465)</p><ul>
178<li>Uses implicit TLS (connection encrypted from start)</li>
179<li>Legacy approach, less commonly used</li>
180<li>Keplars supports port 587 with STARTTLS only</li>
181</ul></div></div></div>
182<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="environment-variables"><a data-card="" href="#environment-variables" class="peer">Environment Variables</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
183<p>Store your credentials securely:</p>
184<figure dir="ltr" class="my-4 bg-fd-card rounded-xl shiki relative border shadow-sm not-prose overflow-hidden text-sm shiki shiki-themes github-light github-dark" style="--shiki-light:#24292e;--shiki-dark:#e1e4e8;--shiki-light-bg:#fff;--shiki-dark-bg:#24292e" tabindex="-1"><div class="empty:hidden absolute top-3 right-2 z-2 backdrop-blur-lg rounded-lg text-fd-muted-foreground"><button type="button" class="inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors duration-100 disabled:pointer-events-none disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-fd-ring p-1 [&amp;_svg]:size-4 hover:text-fd-accent-foreground data-checked:text-fd-accent-foreground" aria-label="Copy Text"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path></svg></button></div><div role="region" tabindex="0" class="text-[0.8125rem] py-3.5 overflow-auto max-h-[600px] fd-scroll-container focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-fd-ring" style="--padding-right:calc(var(--spacing) * 8)"><pre class="min-w-full w-max *:flex *:flex-col"><code><span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D"># .env file</span></span>
185<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">KEPLARS_SMTP_USERNAME</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">your_generated_username</span></span>
186<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8">KEPLARS_SMTP_PASSWORD</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF">your_generated_password</span></span></code></pre></div></figure>
187<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="manage-credentials"><a data-card="" href="#manage-credentials" class="peer">Manage Credentials</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
188<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="view-credentials"><a data-card="" href="#view-credentials" class="peer">View Credentials</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
189<p>In your dashboard&#x27;
189s <strong>SMTP Credentials</strong> section:</p>
190<ul>
191<li>View all your SMTP credentials</li>
192<li>Check usage statistics</li>
193<li>Monitor last activity</li>
194</ul>
195<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="update-credentials"><a data-card="" href="#update-credentials" class="peer">Update Credentials</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
196<ul>
197<li><strong>Edit</strong>: Change name or settings</li>
198<li><strong>Deactivate</strong>: Temporarily disable</li>
199<li><strong>Delete</strong>: Permanently remove</li>
200</ul>
201<h3 class="flex scroll-m-28 flex-row items-center gap-2" id="security"><a data-card="" href="#security" class="peer">Security</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h3>
202<div class="flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md" style="--callout-color:var(--color-fd-warning, var(--color-fd-muted))"><div role="none" class="w-0.5 bg-(--callout-color)/50 rounded-sm"></div><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-triangle-alert size-5 -me-0.5 fill-(--callout-color) text-fd-card" aria-hidden="true"><path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3"></path><path d="M12 9v4"></path><path d="M12 17h.01"></path></svg><div class="flex flex-col gap-2 min-w-0 flex-1"><div class="text-fd-muted-foreground prose-no-margin empty:hidden"><p><strong>Best Practices:</strong></p><ul>
203<li>Never commit SMTP credentials to code repositories</li>
204<li>Use environment variables</li>
205<li>Rotate credentials regularly</li>
206<li>Monitor usage for suspicious activity</li>
207</ul></div></div></div>
208<h2 class="flex scroll-m-28 flex-row items-center gap-2" id="next-steps"><a data-card="" href="#next-steps" class="peer">Next Steps</a><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100" aria-hidden="true"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path></svg></h2>
209<ul>
210<li><a href="/getting-started/send-emails">Send Emails</a> - Learn about API-based email sending</li>
211<li><a href="/examples">Examples</a> - See SMTP integration examples for your language</li>
212<li><a href="/getting-started/webhooks">Webhooks</a> - Get delivery notifications</li>
213</ul>
214<hr/>
215<p>Your SMTP credentials are ready. Use them with any SMTP-compatible email library to send emails through your connected accounts.</p></div><div class="flex flex-row flex-wrap items-center justify-between gap-4 empty:hidden"></div><div class="@container grid gap-4 grid-cols-2"><a class="flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full" href="/docs/getting-started/setup-api-keys"><div class="inline-flex items-center gap-1.5 font-medium"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-left -mx-1 size-4 shrink-0 rtl:rotate-180" aria-hidden="true"><path d="m15 18-6-6 6-6"></path></svg><p>Setup API Keys</p></div><p class="text-fd-muted-foreground truncate">Generate and manage API keys for programmatic email access</p></a><a class="flex flex-col gap-2 rounded-lg border p-4 text-sm transition-colors hover:bg-fd-accent/80 hover:text-fd-accent-foreground @max-lg:col-span-full text-end" href="/docs/getting-started/send-emails"><div class="inline-flex items-center gap-1.5 font-medium flex-row-reverse"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right -mx-1 size-4 shrink-0 rtl:rotate-180" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg><p>Send Emails</p></div><p class="text-fd-muted-foreground truncate">Start sending emails with priority queue processing and advanced features</p></a></div></article><div id="nd-toc" class="sticky top-(--fd-docs-row-1) h-[calc(var(--fd-docs-height)-var(--fd-docs-row-1))] flex flex-col [grid-area:toc] w-(--fd-toc-width) pt-12 pe-4 pb-2 xl:layout:[--fd-toc-width:268px] max-xl:hidden"><h3 id="toc-title" class="inline-flex items-center gap-1.5 text-sm text-fd-muted-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-text-align-start size-4" aria-hidden="true"><path d="M21 5H3"></path><path d="M15 12H3"></path><path d="M17 19H3"></path></svg>On this page</h3><div class="relative min-h-0 text-sm ms-px overflow-auto [scrollbar-width:none] mask-[linear-gradient(to_bottom,transparent,white_16px,white_calc(100%-16px),transparent)] py-3"><div class="relative">
215<div class="flex flex-col border-s border-fd-foreground/10"><a data-active="false" href="#generate-smtp-credentials" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">Generate SMTP Credentials</a><a data-active="false" href="#access-smtp-section" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-6">Access SMTP Section</a><a data-active="false" href="#configure-credentials" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-6">Configure Credentials</a><a data-active="false" href="#save-credentials" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-6">Save Credentials</a><a data-active="false" href="#connection-settings" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">Connection Settings</a><a data-active="false" href="#smtp-capabilities--limitations" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">SMTP Capabilities &amp; Limitations</a><a data-active="false" href="#code-examples" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">Code Examples</a><a data-active="false" href="#environment-variables" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">Environment Variables</a><a data-active="false" href="#manage-credentials" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">Manage Credentials</a><a data-active="false" href="#view-credentials" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-6">View Credentials</a><a data-active="false" href="#update-credentials" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-6">Update Credentials</a><a data-active="false" href="#security" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-6">Security</a><a data-active="false" href="#next-steps" class="prose py-1.5 text-sm text-fd-muted-foreground scroll-m-4 transition-colors wrap-anywhere first:pt-0 last:pb-0 data-[active=true]:text-fd-primary hover:text-fd-accent-foreground ps-3">Next Steps</a></div></div></div></div><!--$--><!--/$--></div>
vendor: 108 bytes, line 215
215<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
215<script src="/_next/static/chunks/4320fd33b5d6a319.js" id="_R_" async=""></script>
215<script>(self.__next_f=self.__next_f||[]).push([0])</script>
215<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[17751,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\"],\"RootProvider\"]\n3:I[106294,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\"],\"TopNavbar\"]\n4:I[339756,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n5:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"default\"]\n6:I[563199,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\"],\"LayoutBody\"]\nb:I[168027,[],\"default\"]\n:HL[\"/_next/static/chunks/435749c5f33da7da.css\",\"style\"]\n:HL[\"/_next/static/media/23b7a97ae3b5c134-s.p.2902b61f.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/99e609270109b47d-s.p.64b9304e.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/a7e15459c1805da0-s.p.ec654d65.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/effe91970fc4db64-s.p.19510058.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
215<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"bkZv704Jee_dhy1iIrpWd\",\"c\":[\"\",\"docs\",\"getting-started\",\"setup-smtp-keys\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"docs\",{\"children\":[[\"slug\",\"getting-started/setup-smtp-keys\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/435749c5f33da7da.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"inter_5901b7c6-module__ec5Qua__variable ibm_plex_mono_2e6493f3-module__b3Glxa__variable font-sans\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"flex flex-col min-h-screen\",\"children\":[\"$\",\"$L2\",null,{\"children\":[[\"$\",\"$L3\",null,{}],[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/2569e9621f389b03.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L6\",null,{\"tree\":{\"type\":\"root\",\"$ref\":\"meta.json\",\"$id\":\"root\",\"name\":\"Documentation\",\"description\":\"$undefined\",\"children\":[{\"$id\":\"index.mdx\",\"type\":\"page\",\"name\":\"Overview\",\"description\":\"High-performance email API with a Redis-based priority queue. Send transactional and marketing email at any scale.\",\"icon\":\"$undefined\",\"url\":\"/docs\",\"$ref\":\"index.mdx\"},{\"$id\":\"_0\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Introduction\"},{\"$id\":\"introduction/quickstart.mdx\",\"type\":\"page\",\"name\":\"Quickstart Guide\",\"description\":\"Get up and running with Keplars Mail Service in minutes\",\"icon\":\"$undefined\",\"url\":\"/docs/introduction/quickstart\",\"$ref\":\"introduction/quickstart.mdx\"},{\"$id\":\"_1\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Getting Started\"},{\"$id\":\"getting-started/authentication.mdx\",\"type\":\"page\",\"name\":\"Authentication\",\"description\":\"Sign up and create your workspace to start using Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/authentication\",\"$ref\":\"getting-started/authentication.mdx\"},{\"$id\":\"getting-started/two-factor-authentication.mdx\",\"type\":\"page\",\"name\":\"Two-Factor Authentication\",\"description\":\"Secure your Keplars account with an authenticator app or email one-time codes\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/two-factor-authentication\",\"$ref\":\"getting-started/two-factor-authentication.mdx\"},{\"$id\":\"getting-started/email-connection.mdx\",\"type\":\"page\",\"name\":\"Email Connection\",\"description\":\"Connect your Gmail or Microsoft account for email sending through Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/email-connection\",\"$ref\":\"getting-started/email-connection.mdx\"},{\"$id\":\"getting-started/setup-api-keys.mdx\",\"type\":\"page\",\"name\":\"Setup API Keys\",\"description\":\"Generate and manage API keys for programmatic email access\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/setup-api-keys\",\"$ref\":\"getting-started/setup-api-keys.mdx\"},{\"$id\":\"getting-started/setup-smtp-keys.mdx\",\"type\":\"page\",\"name\":\"Setup SMTP Ke
215ys\",\"description\":\"Generate SMTP credentials for connected email accounts to use with traditional email clients\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/setup-smtp-keys\",\"$ref\":\"getting-started/setup-smtp-keys.mdx\"},{\"$id\":\"getting-started/send-emails.mdx\",\"type\":\"page\",\"name\":\"Send Emails\",\"description\":\"Start sending emails with priority queue processing and advanced features\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/send-emails\",\"$ref\":\"getting-started/send-emails.mdx\"},{\"$id\":\"getting-started/sandbox-mode.mdx\",\"type\":\"page\",\"name\":\"Sandbox Mode\",\"description\":\"Test your email workflows safely with a dedicated sandbox email address\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/sandbox-mode\",\"$ref\":\"getting-started/sandbox-mode.mdx\"},{\"$id\":\"getting-started/schedule-emails.mdx\",\"type\":\"page\",\"name\":\"Schedule Emails\",\"description\":\"Schedule emails for future delivery with timezone support\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/schedule-emails\",\"$ref\":\"getting-started/schedule-emails.mdx\"},{\"$id\":\"getting-started/custom-domains.mdx\",\"type\":\"page\",\"name\":\"Custom Domains\",\"description\":\"Send emails from your own domain with Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/custom-domains\",\"$ref\":\"getting-started/custom-domains.mdx\"},{\"$id\":\"getting-started/reply-to.mdx\",\"type\":\"page\",\"name\":\"Reply-To Address\",\"description\":\"Route recipient replies to any inbox without DNS records or extra configuration\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/reply-to\",\"$ref\":\"getting-started/reply-to.mdx\"},{\"$id\":\"getting-started/email-templates.mdx\",\"type\":\"page\",\"name\":\"Email Templates\",\"description\":\"Create and use email templates with Handlebars syntax for dynamic content\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/email-templates\",\"$ref\":\"getting-started/email-templates.mdx\"},{\"$id\":\"getting-started/webhooks.mdx\",\"type\":\"page\",\"name\":\"Webhooks\",\"description\":\"Receive real-time notifications about email delivery events\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started/webhooks\",\"$ref\":\"getting-started/webhooks.mdx\"},{\"$id\":\"_2\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Marketing\"},{\"$id\":\"marketing/index.mdx\",\"type\":\"page\",\"name\":\"Marketing\",\"description\":\"Send targeted email campaigns to named contact audiences using Keplars Marketing.\",\"icon\":\"$undefined\",\"url\":\"/docs/marketing\",\"$ref\":\"marketing/index.mdx\"},{\"$id\":\"marketing/campaigns.mdx\",\"type\":\"page\",\"name\":\"Campaign Guide\",\"description\":\"Step-by-step guide to creating an audie
215nce, adding contacts, and sending your first email campaign.\",\"icon\":\"$undefined\",\"url\":\"/docs/marketing/campaigns\",\"$ref\":\"marketing/campaigns.mdx\"},{\"$id\":\"_3\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Enceladas Editor\"},{\"$id\":\"html-editor/index.mdx\",\"type\":\"page\",\"name\":\"Enceladas Editor\",\"description\":\"Build and import custom HTML email templates with full design control\",\"icon\":\"$undefined\",\"url\":\"/docs/html-editor\",\"$ref\":\"html-editor/index.mdx\"},{\"$id\":\"html-editor/import-zip.mdx\",\"type\":\"page\",\"name\":\"Import ZIP\",\"description\":\"Import HTML email exports from Figma, Canva, or any ZIP containing index.html and images\",\"icon\":\"$undefined\",\"url\":\"/docs/html-editor/import-zip\",\"$ref\":\"html-editor/import-zip.mdx\"},{\"$id\":\"html-editor/template-variables.mdx\",\"type\":\"page\",\"name\":\"Template Variables\",\"description\":\"Inject dynamic content into HTML templates using Handlebars double-brace syntax\",\"icon\":\"$undefined\",\"url\":\"/docs/html-editor/template-variables\",\"$ref\":\"html-editor/template-variables.mdx\"},{\"$id\":\"_4\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Migrations\"},{\"$id\":\"migrations/index.mdx\",\"type\":\"page\",\"name\":\"Migration Guides\",\"description\":\"Switch to Keplars from SendGrid, Mailgun, or AWS SES in minutes\",\"icon\":\"$undefined\",\"url\":\"/docs/migrations\",\"$ref\":\"migrations/index.mdx\"},{\"$id\":\"migrations/from-sendgrid.mdx\",\"type\":\"page\",\"name\":\"Migrate from SendGrid\",\"description\":\"Replace SendGrid with Keplars: SDK swap, API comparison, and webhook event mapping\",\"icon\":\"$undefined\",\"url\":\"/docs/migrations/from-sendgrid\",\"$ref\":\"migrations/from-sendgrid.mdx\"},{\"$id\":\"migrations/from-mailgun.mdx\",\"type\":\"page\",\"name\":\"Migrate from Mailgun\",\"description\":\"Replace Mailgun with Keplars: SDK swap, domain setup differences, EU region note\",\"icon\":\"$undefined\",\"url\":\"/docs/migrations/from-mailgun\",\"$ref\":\"migrations/from-mailgun.mdx\"},{\"$id\":\"migrations/from-aws-ses.mdx\",\"type\":\"page\",\"name\":\"Migrate from AWS SES\",\"description\":\"Replace AWS SES with Keplars: swap IAM credentials, migrate SNS topics to webhooks\",\"icon\":\"$undefined\",\"url\":\"/docs/migrations/from-aws-ses\",\"$ref\":\"migrations/from-aws-ses.mdx\"},{\"$id\":\"_5\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Automations\"},{\"$id\":\"automations/index.mdx\",\"type\":\"page\",\"name\":\"Automations\",\"description\":\"Trigger workflows, enroll contacts, and fire events from your own application using the Automations Public API.\",\"icon\":\"$undefined\",\"url\":\"/docs/automations\",\"$ref\":\"automations/index.mdx\"},{\"$id\":\"automations/building-automations.mdx\",\"type\":\"page\",\"name\":\"Building Automations\",\"description\":\"End-to-end walkthrough for building a real automation in the Keplars dashboard - trigger, email, delay, condition, and action nodes.\",\"icon\":\"$undefined\",\"url\":\"/docs/automations/building-automations\",\"$ref\":\"automations/building-automations.mdx\"},{\"$id\":\"automations/node-reference.mdx\",\"type\":\"page\",\"name\":\"Node Reference\",\"description\":\"Complete reference for every node type available in the Keplars automation builder - triggers, email, delays, conditions, and actions.\",\"icon\":\"$undefined\",\"url\":\"/docs/automations/node-reference\",\"$ref\":\"automations/node-reference.mdx\"},{\"$id\":\"_6\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"CLI\"},{\"$id\":\"cli/index.mdx\",\"type\":\"page\",\"name\":\"CLI Overview\",\"description\":\"Install and use the Keplars CLI to send emails and manage resources from your terminal\",\"icon\":\"$undefined\",\"url\":\"/docs/cli\",\"$ref\":\"cli/index.mdx\"},{\"$id\":\"cli/commands.mdx\",\"type\":\"page\",\"name\":\"Command Reference\",\"description\":\"Complete reference for all Keplars CLI commands\",\"icon\":\"$undefined\",\"url\":\"/docs/cli/commands\",\"$ref\":\"cli/commands.mdx\"},{\"$id\":\"_7\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Template Libraries\"},{\"$id\":\"template-libraries/index.mdx\",\"type\":\"page\",\"name\":\"Template Libraries\",\"description\":\"Choose the right template library for your email needs with Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/template-libraries\",\"$ref\":\"template-libraries/index.mdx\"},{\"$id\":\"template-libraries/react-email.mdx\",\"type\":\"page\",\"name\":\"React Email\",\"description\":\"Build beautiful emails using React components with TypeScript support\",\"icon\":\"$undefined\",\"url\":\"/docs/template-libraries/react-email\",\"$ref\":\"template-libraries/react-email.mdx\"},{\"$id\":\"template-libraries/mjml.mdx\",\"type\":\"page\",\"name\":\"MJML\",\"description\":\"Build responsive emails with MJML and Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/template-libraries/mjml\",\"$ref\":\"template-libraries/mjml.mdx\"},{\"$id\":\"template-libraries/handlebars.mdx\",\"type\":\"page\",\"name\":\"Handlebars\",\"description\":\"Build dynamic email templates with Handlebars and Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/template-libraries/handlebars\",\"$ref\":\"template-libraries/handlebars.mdx\"},{\"$id\":\"template-libraries/pug-ejs.mdx\",\"type\":\"page\",\"name\":\"Pug \u0026 EJS\",\"description\":\"Build email templates with Pug and EJS template engines and Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/template-libraries/pug-ejs\",\"$ref\":\"template-libraries/pug-ejs.mdx\"},{\"$id\":\"_8\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Deliverability\"},{\"$id\":\"deliverability/index.mdx\",\"type\":\"page\",\"name\":\"Deliverability\",\"description\":\"Maximize inbox placement with authentication, reputation management, and list hygiene\",\"icon\":\"$undefined\",\"url\":\"/docs/deliverability\",\"$ref\":\"deliverability/index.mdx\"},{\"$id\":\"deliverability/authentication.mdx\",\"type\":\"page\",\"name\":\"Email Authentication\",\"description\":\"Configure SPF, DKIM, and DMARC to prove domain ownership and improve inbox placement\",\"icon\":\"$undefined\",\"url\":\"/docs/deliverability/authentication\",\"$ref\":\"deliverability/authentication.mdx\"},{\"$id\":\"deliverability/bounce-handling.mdx\",\"type\":\"page\",\"name\":\"Bounce Handling\",\"description\":\"Understand hard and soft bounces, safe thresholds, and how to query bounced contacts\",\"icon\":\"$undefined\",\"url\":\"/docs/deliverability/bounce-handling\",\"$ref\":\"deliverability/bounce-handling.mdx\"},{\"$id\":\"deliverability/list-hygiene.mdx\",\"type\":\"page\",\"name\":\"List Hygiene\",\"description\":\"Keep your contact list clean to protect sender reputation and maximize inbox placement\",\"icon\":\"$undefined\",\"url\":\"/docs/deliverability/list-hygiene\",\"$ref\":\"deliverability/list-hygiene.mdx\"},{\"$id\":\"_9\",\"type\":\"separator\",\"icon\":\"$undefined\",\"name\":\"Troubleshooting\"},{\"$id\":\"troubleshooting/common-errors.mdx\",\"type\":\"page\",\"name\":\"Common Errors\",\"description\":\"Quick reference for common error codes and solutions\",\"icon\":\"$undefined\",\"url\":\"/docs/troubleshooting/common-errors\",\"$ref\":\"troubleshooting/common-errors.mdx\"}],\"fallback\":{\"type\":\"root\",\"$ref\":\"$undefined\",\"$id\":\"fallback:root\",\"name\":\"Docs\",\"description\":\"$undefined\",\"children\":[{\"$id\":\"fallback:test.mdx\",\"type\":\"page\",\"name\":\"Components\",\"description\":\"Components\",\"icon\":\"$undefined\",\"url\":\"/docs/test\",\"$ref\":\"test.mdx\"},{\"type\":\"folder\",\"name\":\"AI Templates\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:ai-templates/index.mdx\",\"type\":\"page\",\"name\":\"AI Templates\",\"description\":\"Generate professional email templates using AI-
215powered template generation with Gemini\",\"icon\":\"$undefined\",\"url\":\"/docs/ai-templates\",\"$ref\":\"ai-templates/index.mdx\"},{\"$id\":\"fallback:ai-templates/prompt-examples.mdx\",\"type\":\"page\",\"name\":\"Prompt Examples\",\"description\":\"AI prompt examples for generating effective email templates\",\"icon\":\"$undefined\",\"url\":\"/docs/ai-templates/prompt-examples\",\"$ref\":\"ai-templates/prompt-examples.mdx\"},{\"$id\":\"fallback:ai-templates/guardrails.mdx\",\"type\":\"page\",\"name\":\"Content Guardrails\",\"description\":\"Safety and security measures for AI template generation\",\"icon\":\"$undefined\",\"url\":\"/docs/ai-templates/guardrails\",\"$ref\":\"ai-templates/guardrails.mdx\"}],\"$id\":\"fallback:ai-templates\",\"$ref\":\"ai-templates/meta.json\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Automations\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[],\"$id\":\"fallback:automations\",\"$ref\":\"automations/meta.json\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"CLI\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[],\"$id\":\"fallback:cli\",\"$ref\":\"cli/meta.json\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Examples\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:examples/nodejs.mdx\",\"type\":\"page\",\"name\":\"NodeJS\",\"description\":\"Node.js integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/nodejs\",\"$ref\":\"examples/nodejs.mdx\"},{\"$id\":\"fallback:examples/go.mdx\",\"type\":\"page\",\"name\":\"Go\",\"description\":\"Go integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/go\",\"$ref\":\"examples/go.mdx\"},{\"$id\":\"fallback:examples/python.mdx\",\"type\":\"page\",\"name\":\"Python\",\"description\":\"Python integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/python\",\"$ref\":\"examples/python.mdx\"},{\"$id\":\"fallback:examples/dart.mdx\",\"type\":\"page\",\"name\":\"Dart\",\"description\":\"Dart integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/dart\",\"$ref\":\"examples/dart.mdx\"},{\"$id\":\"fallback:examples/kotlin.mdx\",\"type\":\"page\",\"name\":\"Kotlin\",\"description\":\"Kotlin integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/kotlin\",\"$ref\":\"examples/kotlin.mdx\"},{\"$id\":\"fallback:examples/php.mdx\",\"type\":\"page\",\"name\":\"PHP\",\"description\":\"PHP integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/php\",\"$ref\":\"examples/php.mdx\"},{\"$id\":\"fallback:examples/phoenix-elixir.mdx\",\"type\":\"page\",\"name\":\"Phoenix Elixir\",\"description\":\"Phoenix Elixir integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/phoenix-elixir\",\"$ref\":\"examples/phoenix-elixir.mdx\"},{\"$id\":\"fallback:examples/ruby.mdx\",\"type\":\"page\",\"name\":\"Ruby\",\"description\":\"Ruby integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/ruby\",\"$ref\":\"examples/ruby.mdx\"},{\"$id\":\"fallback:examples/rust.mdx\",\"type\":\"page\",\"name\":\"Rust\",\"description\":\"Rust integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/rust\",\"$ref\":\"examples/rust.mdx\"},{\"$id\":\"fallback:examples/cpp.mdx\",\"type\":\"page\",\"name\":\"C++\",\"description\":\"C++ integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/cpp\",\"$ref\":\"examples/cpp.mdx\"},{\"$id\":\"fallback:examples/ios-swift.mdx\",\"type\":\"page\",\"name\":\"iOS Swift\",\"description\":\"iOS Swift integration examples for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/examples/ios-swift\",\"$ref\":\"examples/ios-swift.mdx\"}],\"$id\":\"fallback:examples\",\"$ref\":\"examples/meta.json\",\"index\":{\"$id\":\"fallback:examples/index.mdx\",\"type\":\"page\",\"name\":\"API Examples\",\"description\":\"Practical code examples for integrating with Keplars Mail Service instant email endpoint\",\"
215icon\":\"$undefined\",\"url\":\"/docs/examples\",\"$ref\":\"examples/index.mdx\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Getting Started\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[],\"$id\":\"fallback:getting-started\",\"$ref\":\"getting-started/meta.json\",\"index\":{\"$id\":\"fallback:getting-started/index.mdx\",\"type\":\"page\",\"name\":\"Getting Started\",\"description\":\"Complete setup guide for Keplars Mail Service integration\",\"icon\":\"$undefined\",\"url\":\"/docs/getting-started\",\"$ref\":\"getting-started/index.mdx\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Platform Integrations\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:integrations/index.mdx\",\"type\":\"page\",\"name\":\"Platform Integrations\",\"description\":\"Pre-built integrations for popular serverless platforms\",\"icon\":\"$undefined\",\"url\":\"/docs/integrations\",\"$ref\":\"integrations/index.mdx\"},{\"$id\":\"fallback:integrations/supabase.mdx\",\"type\":\"page\",\"name\":\"Supabase Integration\",\"description\":\"Send emails using Keplars with Supabase Edge Functions\",\"icon\":\"$undefined\",\"url\":\"/docs/integrations/supabase\",\"$ref\":\"integrations/supabase.mdx\"},{\"$id\":\"fallback:integrations/firebase.mdx\",\"type\":\"page\",\"name\":\"Firebase Cloud Functions Integration\",\"description\":\"Send emails using Keplars with Firebase Cloud Functions\",\"icon\":\"$undefined\",\"url\":\"/docs/integrations/firebase\",\"$ref\":\"integrations/firebase.mdx\"},{\"$id\":\"fallback:integrations/vercel.mdx\",\"type\":\"page\",\"name\":\"Vercel Functions Integration\",\"description\":\"Send emails using Keplars with Vercel Serverless Functions\",\"icon\":\"$undefined\",\"url\":\"/docs/integrations/vercel\",\"$ref\":\"integrations/vercel.mdx\"},{\"$id\":\"fallback:integrations/lovable.mdx\",\"type\":\"page\",\"name\":\"Lovable.dev Integration\",\"description\":\"Add email functionality to Lovable.dev projects with Keplars\",\"icon\":\"$undefined\",\"url\":\"/docs/integrations/lovable\",\"$ref\":\"integrations/lovable.mdx\"}],\"$id\":\"fallback:integrations\",\"$ref\":\"integrations/meta.json\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Introduction\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[],\"$id\":\"fallback:introduction\",\"$ref\":\"introduction/meta.json\",\"index\":{\"$id\":\"fallback:introduction/index.mdx\",\"type\":\"page\",\"name\":\"Introduction\",\"description\":\"Get familiar with Keplars Mail Service platform and features\",\"icon\":\"$undefined\",\"url\":\"/docs/introduction\",\"$ref\":\"introduction/index.mdx\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Languages\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:languages/nodejs.mdx\",\"type\":\"page\",\"name\":\"NodeJS\",\"description\":\"Complete Node.js integration guide for sending instant emails with Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/languages/nodejs\",\"$ref\":\"languages/nodejs.mdx\"},{\"$id\":\"fallback:languages/python.mdx\",\"type\":\"page\",\"name\":\"Python\",\"description\":\"Complete Python integration guide for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/languages/python\",\"$ref\":\"languages/python.mdx\"}],\"$id\":\"fallback:languages\",\"$ref\":\"languages/meta.json\",\"index\":{\"$id\":\"fallback:languages/index.mdx\",\"type\":\"page\",\"name\":\"Language SDKs \u0026 Integration\",\"description\":\"Complete integration guides for sending instant emails with different programming languages\",\"icon\":\"$undefined\",\"url\":\"/docs/languages\",\"$ref\":\"languages/index.mdx\"},\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Marketing\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[],\"$id\":\"fallback:marketing\",\"$ref\":\"marketing/meta.json\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Template Libraries\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[],\"$id\":\"fallback:template-libraries\",\"$ref\":\"template-libraries/meta.json\",\"icon\":\"$undefined\"},{\"type\":\"folder\",\"name\":\"Troubleshooting\",\"root\":\"$undefined\",\"defaultOpen\":\"$undefined\",\"description\":\"$undefined\",\"collapsible\":\"$undefined\",\"children\":[{\"$id\":\"fallback:troubleshooting/index.mdx\",\"type\":\"page\",\"name\":\"Troubleshooting\",\"description\":\"Common issues and s
215olutions for Keplars Mail Service\",\"icon\":\"$undefined\",\"url\":\"/docs/troubleshooting\",\"$ref\":\"troubleshooting/index.mdx\"}],\"$id\":\"fallback:troubleshooting\",\"$ref\":\"troubleshooting/meta.json\",\"icon\":\"$undefined\"}]}},\"tabs\":[],\"tabMode\":\"$undefined\",\"sidebar\":{\"collapsible\":true,\"defaultOpenLevel\":999},\"nav\":{\"enabled\":false},\"children\":\"$L7\"}]]}],{\"children\":[\"$L8\",{\"children\":[\"$L9\",{},null,false,false]},null,false,false]},null,false,false]},null,false,false],\"$La\",false]],\"m\":\"$undefined\",\"G\":[\"$b\",[]],\"S\":true}\n"])</script>
215<script>self.__next_f.push([1,"d:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"OutletBoundary\"]\ne:\"$Sreact.suspense\"\n10:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"ViewportBoundary\"]\n12:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"MetadataBoundary\"]\n7:[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n9:[\"$\",\"$1\",\"c\",{\"children\":[\"$Lc\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/85f6710bd4a11f19.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/970de797a3acbbdc.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@f\"}]}]]}]\na:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L10\",null,{\"children\":\"$L11\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L12\",null,{\"children\":[\"$\",\"$e\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L13\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script>
215<script>self.__next_f.push([1,"14:I[353266,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"DocsPage\"]\n15:I[353266,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"DocsTitle\"]\n16:I[353266,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"DocsDescription\"]\n17:I[353266,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"DocsBody\"]\n18:I[795879,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"default\"]\n"])</script>
215<script>self.__next_f.push([1,"c:[\"$\",\"$L14\",null,{\"toc\":[{\"depth\":2,\"url\":\"#generate-smtp-credentials\",\"title\":\"Generate SMTP Credentials\"},{\"depth\":3,\"url\":\"#access-smtp-section\",\"title\":\"Access SMTP Section\"},{\"depth\":3,\"url\":\"#configure-credentials\",\"title\":\"Configure Credentials\"},{\"depth\":3,\"url\":\"#save-credentials\",\"title\":\"Save Credentials\"},{\"depth\":2,\"url\":\"#connection-settings\",\"title\":\"Connection Settings\"},{\"depth\":2,\"url\":\"#smtp-capabilities--limitations\",\"title\":\"SMTP Capabilities \u0026 Limitations\"},{\"depth\":2,\"url\":\"#code-examples\",\"title\":\"Code Examples\"},{\"depth\":2,\"url\":\"#environment-variables\",\"title\":\"Environment Variables\"},{\"depth\":2,\"url\":\"#manage-credentials\",\"title\":\"Manage Credentials\"},{\"depth\":3,\"url\":\"#view-credentials\",\"title\":\"View Credentials\"},{\"depth\":3,\"url\":\"#update-credentials\",\"title\":\"Update Credentials\"},{\"depth\":3,\"url\":\"#security\",\"title\":\"Security\"},{\"depth\":2,\"url\":\"#next-steps\",\"title\":\"Next Steps\"}],\"full\":\"$undefined\",\"children\":[[\"$\",\"$L15\",null,{\"children\":\"Setup SMTP Keys\"}],[\"$\",\"$L16\",null,{\"children\":\"Generate SMTP credentials for connected email accounts to use with traditional email clients\"}],[\"$\",\"$L17\",null,{\"children\":[[\"$\",\"p\",null,{\"children\":\"Generate SMTP credentials to use your connected email accounts with traditional email libraries like Nodemailer, PHPMailer, or built-in SMTP clients.\"}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md\",\"style\":{\"--callout-color\":\"var(--color-fd-info, var(--color-fd-muted))\"},\"children\":[[\"$\",\"div\",null,{\"role\":\"none\",\"className\":\"w-0.5 bg-(--callout-color)/50 rounded-sm\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"circle\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"key\":\"1mglay\"}],[\"path\",{\"d\":\"M12 16v-4\",\"key\":\"1dtifu\"}],[\"path\",{\"d\":\"M12 8h.01\",\"key\":\"e9boi3\"}]],\"className\":\"lucide-info size-5 -me-0.5 fill-(--callout-color) text-fd-card\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 min-w-0 flex-1\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground prose-no-margin empty:hidden\",\"children\":[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"SMTP Credentials:\"}],\" Use your connected Gmail/Outlook accounts with any SMTP-compatible email library or application.\"]}]}]]}]]}],\"\\n\",[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"generate-smtp-credentials\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#generate-smtp-credentials\",\"className\":\"peer\",\"children\":\"Generate SMTP Credentials\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\",\"key\":\"1cjeqo\"}],[\"path\",{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\",\"key\":\"19qd67\"}]],\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}],\"\\n\",[\"$\",\"div\",null,{\"className\":\"fd-steps\",\"children\":[[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"access-smtp-section\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#access-smtp-section\",\"className\":\"peer\",\"children\":\"Access SMTP Section\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}],[\"$\",\"ol\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Sign in to \",\"$L19\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Navigate to \",[\"$\",\"strong\",null,{\"children\":\"SMTP Credentials\"}],\" in the sidebar\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Click \",[\"$\",\"strong\",null,{\"children\":\"Generate SMTP Credentials\"}]]}],\"\\n\"]}],[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"configure-credentials\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#configure-credentials\",\"className\":\"peer\",\"children\":\"Configure Credentials\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}],[\"$\",\"ol\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Select your connected email account\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Enter a descriptive name (e.g., \\\"Production App\\\")\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Click \",[\"$\",\"strong\",null,{\"children\":\"Generate\"}]]}],\"\\n\"]}],\"$L1a\",\"$L1b\",\"$L1c\"]}],\"\\n\",\"$L1d\",\"\\n\",\"$L1e\",\"\\n\",\"$L1f\",\"\\n\",\"$L20\",\"\\n\",\"$L21\",\"\\n\",\"$L22\",\"\\n\",\"$L23\",\"\\n\",\"$L24\",\"\\n\",\"$L25\",\"\\n\",\"$L26\",\"\\n\",\"$L27\",\"\\n\",\"$L28\",\"\\n\",\"$L29\",\"\\n\",\"$L2a\",\"\\n\",\"$L2b\",\"\\n\",\"$L2c\",\"\\n\",\"$L2d\",\"\\n\",\"$L2e\",\"\\n\",\"$L2f\",\"\\n\",\"$L30\",\"\\n\",\"$L31\",\"\\n\",\"$L32\",\"\\n\",\"$L33\",\"\\n\",\"$L34\"]}]]}]\n"])</script>
215<script>self.__next_f.push([1,"35:I[144324,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"CodeBlock\"]\n36:I[144324,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"Pre\"]\n38:I[213758,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"Tabs\"]\n39:I[213758,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"Tab\"]\n53:I[647873,[\"/_next/static/chunks/03c8fa90f00e78ea.js\",\"/_next/static/chunks/7dea3aaf62b2f0f9.js\",\"/_next/static/chunks/69a6ace669b8c0cc.js\",\"/_next/static/chunks/8f701c9ef49b33a4.js\",\"/_next/static/chunks/4fe5999e8d94b4f1.js\",\"/_next/static/chunks/2569e9621f389b03.js\",\"/_next/static/chunks/c70c7d6e1faf4584.js\",\"/_next/static/chunks/85f6710bd4a11f19.js\",\"/_next/static/chunks/970de797a3acbbdc.js\"],\"default\"]\n1a:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"save-credentials\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#save-credentials\",\"className\":\"peer\",\"children\":\"Save Credentials\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n1b:[\"$\",\"div\",null,{\"className\":\"flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md\",\"style\":{\"--callout-color\":\"var(--color-fd-warning, var(--color-fd-muted))\"},\"children\":[[\"$\",\"div\",null,{\"role\":\"none\",\"className\":\"w-0.5 bg-(--callout-color)/50 rounded-sm\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":[[\"path\",{\"d\":\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3\",\"key\":\"wmoenq\"}],[\"path\",{\"d\":\"M12 9v4\",\"key\":\"juzpu7\"}],[\"path\",{\"d\":\"M12 17h.01\",\"key\":\"p32p05\"}]],\"className\":\"lucide-triangle-alert size-5 -me-0.5 fill-(--callout-color) text-fd-card\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 min-w-0 flex-1\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground prose-no-margin empty:hidden\",\"children\":[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Important:\"}],\" Copy your SMTP credentials immediately - they're shown only once.\"]}]}]]}]]}]\n1c:[\"$\",\"ol\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Copy the SMTP username and password\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Store them securely in your environment variables\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Click \",[\"$\",\"strong\",null,{\"children\":\"Done\"}]]}],\"\\n\"]}]\n1d:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"connection-settings\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#connection-settings\",\"className\":\"peer\",\"children\":\"Connection Settings\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:pro"])</script>
215<script>self.__next_f.push([1,"ps:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n1e:[\"$\",\"p\",null,{\"children\":\"Use these settings with any SMTP client:\"}]\n"])</script>
215<script>self.__next_f.push([1,"1f:[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"M 6,1 C 4.354992,1 3,2.354992 3,4 v 16 c 0,1.645008 1.354992,3 3,3 h 12 c 1.645008,0 3,-1.354992 3,-3 V 8 7 A 1.0001,1.0001 0 0 0 20.707031,6.2929687 l -5,-5 A 1.0001,1.0001 0 0 0 15,1 h -1 z m 0,2 h 7 v 3 c 0,1.645008 1.354992,3 3,3 h 3 v 11 c 0,0.564129 -0.435871,1 -1,1 H 6 C 5.4358712,21 5,20.564129 5,20 V 4 C 5,3.4358712 5.4358712,3 6,3 Z M 15,3.4140625 18.585937,7 H 16 C 15.435871,7 15,6.5641288 15,6 Z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"children\":\"Host: smtp.keplars.com\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"children\":\"Port: 587 (recommended - industry standard)\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"children\":\"      or 2525 (legacy - will be deprecated)\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"children\":\"Security: STARTTLS\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"children\":\"Username: [Your generated username]\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"children\":\"Password: [Your generated password]\"}]}]]}]}]}]\n"])</script>
215<script>self.__next_f.push([1,"20:[\"$\",\"div\",null,{\"className\":\"flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md\",\"style\":{\"--callout-color\":\"var(--color-fd-info, var(--color-fd-muted))\"},\"children\":[[\"$\",\"div\",null,{\"role\":\"none\",\"className\":\"w-0.5 bg-(--callout-color)/50 rounded-sm\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:2:props:children:1:props:iconNode\",\"className\":\"lucide-info size-5 -me-0.5 fill-(--callout-color) text-fd-card\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 min-w-0 flex-1\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground prose-no-margin empty:hidden\",\"children\":[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Port 587\"}],\" is the industry-standard SMTP submission port and is recommended for all new integrations. Port 2525 is supported for backward compatibility but will be deprecated 
215in the future.\"]}]}]]}]]}]\n21:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"smtp-capabilities--limitations\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#smtp-capabilities--limitations\",\"className\":\"peer\",\"children\":\"SMTP Capabilities \u0026 Limitations\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n"])</script>
215<script>self.__next_f.push([1,"22:[\"$\",\"div\",null,{\"className\":\"flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md\",\"style\":{\"--callout-color\":\"var(--color-fd-warning, var(--color-fd-muted))\"},\"children\":[[\"$\",\"div\",null,{\"role\":\"none\",\"className\":\"w-0.5 bg-(--callout-color)/50 rounded-sm\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$1b:props:children:1:props:iconNode\",\"className\":\"lucide-triangle-alert size-5 -me-0.5 fill-(--callout-color) text-fd-card\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 min-w-0 flex-1\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground prose-no-margin empty:hidden\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"SMTP vs API Features:\"}]}],[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"✅ SMTP Supports:\"}]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Raw email content (subject, body, HTML)\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"Custom sender display names (e.g., \",[\"$\",\"code\",null,{\"children\":\"From: John Doe \[email protected]\u003e\"}],\")\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Multiple recipients (To)\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"File attachments\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Custom headers\"}],\"\\n\"]}],[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"❌ SMTP Does NOT Support:\"}]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Email templates\"}],\" - Templates are only available via the \",\"$L37\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Template parameters and dynamic content\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Advanced features like AI-generated content\"}],\"\\n\"]}],[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"When to use SMTP:\"}]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Legacy applications that can't make HTTP requests\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Existing codebases using SMTP libraries\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Drop-in replacement for traditional SMTP servers\"}],\"\\n\"]}],[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"When to use the API:\"}]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"New integrations and modern applications\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"When you need email templates\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Better error handling and debugging\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Advanced features and analytics\"}],\"\\n\"]}]]}]]}]]}]\n"])</script>
215<script>self.__next_f.push([1,"23:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"code-examples\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#code-examples\",\"className\":\"peer\",\"children\":\"Code Examples\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n"])</script>
215<script>self.__next_f.push([1,"24:[\"$\",\"$L38\",null,{\"items\":[\"Node.js\",\"Python\",\"PHP\",\"Go\"],\"children\":[[\"$\",\"$L39\",null,{\"value\":\"Node.js\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" nodemailer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" require\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'nodemailer'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"const\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" transporter\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" nodemailer.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"createTransporter\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  host: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'smtp.keplars.com'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  port: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"587\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\"
215:\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  secure: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"false\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"// Enable STARTTLS (upgrades connection to TLS)\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  auth: {\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    user: process.env.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"KEPLARS_SMTP_USERNAME\"}],\"$L3a\"]}],\"\\n\",\"$L3b\",\"\\n\",\"$L3c\",\"\\n\",\"$L3d\",\"\\n\",\"$L3e\",\"\\n\",\"$L3f\",\"\\n\",\"$L40\",\"\\n\",\"$L41\",\"\\n\",\"$L42\",\"\\n\",\"$L43\",\"\\n\",\"$L44\",\"\\n\",\"$L45\",\"\\n\",\"$L46\",\"\\n\",\"$L47\",\"\\n\",\"$L48\",\"\\n\",\"$L49\",\"\\n\",\"$L4a\"]}]}]}],\"$L4b\",\"$L4c\"]}],\"$L4d\",\"$L4e\",\"$L4f\"]}]\n"])</script>
215<script>self.__next_f.push([1,"25:[\"$\",\"div\",null,{\"className\":\"flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md\",\"style\":{\"--callout-color\":\"var(--color-fd-info, var(--color-fd-muted))\"},\"children\":[[\"$\",\"div\",null,{\"role\":\"none\",\"className\":\"w-0.5 bg-(--callout-color)/50 rounded-sm\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:2:props:children:1:props:iconNode\",\"className\":\"lucide-info size-5 -me-0.5 fill-(--callout-color) text-fd-card\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 min-w-0 flex-1\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground prose-no-margin empty:hidden\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"Understanding STARTTLS Security:\"}]}],[\"$\",\"p\",null,{\"children\":[\"The \",[\"$\",\"code\",null,{\"children\":\"secure: false\"}],\" setting (in Node.js/similar libraries) enables \",[\"$\",\"strong\",null,{\"children\":\"STARTTLS\"}],\" encryption, which is the recommended security method for port 587:\"]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Connection Flow\"}],\": Starts as plaintext → Client sends \",[\"$\",\"code\",null,{\"children\":\"STARTTLS\"}],\" command → Connection upgrades to TLS encryption → All data (credentials, emails) transmitted securely\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Industry Standard\"}],\": Port 587 with STARTTLS is the modern standard for email submission (RFC 6409)\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Not Insecure\"}],\": Despite the name, \",[\"$\",\"code\",null,{\"children\":\"secure: false\"}],\" enables encryption via STARTTLS upgrade\"]}],\"\\n\"]}],[\"$\",\"p\",null,{\"children\":[\"Alternative: \",[\"$\",\"code\",null,{\"children\":\"secure: true\"}],\" (Port 465)\"]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Uses implicit TLS (connection encrypted from start)\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Legacy approach, less commonly used\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Keplars supports port 587 with STARTTLS only\"}],\"\\n\"]}]]}]]}]]}]\n"])</script>
215<script>self.__next_f.push([1,"26:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"environment-variables\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#environment-variables\",\"className\":\"peer\",\"children\":\"Environment Variables\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n27:[\"$\",\"p\",null,{\"children\":\"Store your credentials securely:\"}]\n"])</script>
215<script>self.__next_f.push([1,"28:[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# .env file\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"KEPLARS_SMTP_USERNAME\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"your_generated_username\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"KEPLARS_SMTP_PASSWORD\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"your_generated_password\"}]]}]]}]}]}]\n"])</script>
215<script>self.__next_f.push([1,"29:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"manage-credentials\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#manage-credentials\",\"className\":\"peer\",\"children\":\"Manage Credentials\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n2a:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"view-credentials\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#view-credentials\",\"className\":\"peer\",\"children\":\"View Credentials\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n2b:[\"$\",\"p\",null,{\"children\":[\"In your dashboard's \",[\"$\",\"strong\",null,{\"children\":\"SMTP Credentials\"}],\" section:\"]}]\n2c:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"View all your SMTP credentials\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Check usage statistics\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Monitor last activity\"}],\"\\n\"]}]\n2d:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"update-credentials\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#update-credentials\",\"className\":\"peer\",\"children\":\"Update Credentials\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n2e:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Edit\"}],\": Change name or settings\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Deactivate\"}],\": Temporarily disable\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Delete\"}],\": Permanently remove\"]}],\"\\n\"]}]\n2f:[\"$\",\"h3\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"security\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#security\",\"className\":\"peer\",\"children\":\"Security\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foreground opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n30:[\"$\",\"div\",null,{\"className\":\"flex gap-2 my-4 rounded-xl border bg-fd-card p-3 ps-1 text-sm text-fd-card-foreground shadow-md\",\"style\":{\"--callout-color\":\"var(--color-fd-warning, var(--color-fd-muted))\"},\"children\":[[\"$\",\"div\",null,{\"role\":\"none\",\"className\":\"w-0.5 bg-(--callout-color)/50 rounded-sm\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$1b:props:children:1:props:iconNode\",\"className\":\"lucide-triangle-alert size-5 -me-0.5 fill-(--callout-color) text-fd-card\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-2 min-w-0 flex-1\",\"children\":[\"$undefined\",[\"$\",\"div\",null,{\"className\":\"text-fd-muted-foreground prose-no-margin empty:hidden\",\"children\":[[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"Best Practices:\"}]}],[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":\"Never commit SMTP credentials to code repositories\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Use environment variables\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Rotate credentials regularly\"}],\"\\n\",[\"$\",\"li\",null,{\"children\":\"Monitor usage for suspicious activity\"}],\"\\n\"]}]]}]]}]]}]\n31:[\"$\",\"h2\",null,{\"className\":\"flex scroll-m-28 flex-row items-center gap-2\",\"id\":\"next-steps\",\"children\":[[\"$\",\"a\",null,{\"data-card\":\"\",\"href\":\"#next-steps\",\"className\":\"peer\",\"children\":\"Next Steps\"}],[\"$\",\"$L18\",null,{\"ref\":\"$undefined\",\"iconNode\":\"$c:props:children:2:props:children:4:props:children:1:props:iconNode\",\"className\":\"lucide-link size-3.5 shrink-0 text-fd-muted-foregroun"])</script>
215<script>self.__next_f.push([1,"d opacity-0 transition-opacity peer-hover:opacity-100\",\"aria-hidden\":true}]]}]\n32:[\"$\",\"ul\",null,{\"children\":[\"\\n\",[\"$\",\"li\",null,{\"children\":[\"$L50\",\" - Learn about API-based email sending\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"$L51\",\" - See SMTP integration examples for your language\"]}],\"\\n\",[\"$\",\"li\",null,{\"children\":[\"$L52\",\" - Get delivery notifications\"]}],\"\\n\"]}]\n33:[\"$\",\"hr\",null,{}]\n34:[\"$\",\"p\",null,{\"children\":\"Your SMTP credentials are ready. Use them with any SMTP-compatible email library to send emails through your connected accounts.\"}]\n19:[\"$\",\"$L53\",null,{\"href\":\"https://dash.keplars.com\",\"children\":\"dash.keplars.com\"}]\n"])</script>
215<script>self.__next_f.push([1,"3a:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]\n3b:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    pass: process.env.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"KEPLARS_SMTP_PASSWORD\"}]]}]\n3c:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  }\"}]}]\n3d:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"});\"}]}]\n3e:[\"$\",\"span\",null,{\"className\":\"line\"}]\n3f:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"async\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" function\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" sendEmail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"() {\"}]]}]\n40:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"  await\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" transporter.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sendMail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"({\"}]]}]\n41:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    from: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'[email protected]'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n42:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    to: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'[email protected]'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n43:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    subject: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Hello from Nodemailer'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\",\"}]]}]\n44:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    text: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'This email was sent using SMTP credentials'\"}]]}]\n45:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  });\"}]}]\n46:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]\n47:[\"$\",\"span\",null,{\"className\":\"line\"}]\n48:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\"
215:\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"sendEmail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"()\"}]]}]\n49:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  .\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"then\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(() \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--sh"])</script>
215<script>self.__next_f.push([1,"iki-dark\":\"#F97583\"},\"children\":\"=\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"log\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Email sent successfully'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"))\"}]]}]\n4a:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"  .\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"catch\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#E36209\",\"--shiki-dark\":\"#FFAB70\"},\"children\":\"error\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" =\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" console.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"error\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Error:'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", error));\"}]]}]\n4b:[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"Install:\"}]}]\n4c:[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"npm\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" install\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" nodemailer\"}]]}]}]}]}]\n54:T5c0,"])</script>
215<script>self.__next_f.push([1,"\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script>
215<script>self.__next_f.push([1,"4d:[\"$\",\"$L39\",null,{\"value\":\"Python\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$54\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" smtplib\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" email.mime.text \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" MIMEText\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"from\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" email.mime.multipart \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" MIMEMultipart\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" os\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# SMTP Configuration\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"smtp_username \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" os.getenv(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'KEPLARS_SMTP_USERNAME'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$L55\",\"$L56\",\"$L57\",\"$L58\",\"$L59\"]}],\"\\n\",\"$L5a\",\"\\n\",\"$L5b\",\"\\n\",\"$L5c\",\"\\n\",\"$L5d\",\"\\n\",\"$L5e\",\"\\n\",\"$L5f\",\"\\n\",\"$L60\",\"\\n\",\"$L61\",\"\\n\",\"$L62\",\"\\n\",\"$L63\",\"\\n\",\"$L64\",\"\\n\",\"$L65\",\"\\n\",\"$L66\",\"\\n\",\"$L67\",\"\\n\",\"$L68\",\"\\n\",\"$L69\",\"\\n\",\"$L6a\",\"\\n\",\"$L6b\",\"\\n\",\"$L6c\",\"\\n\",\"$L6d\"]}]}]}],\"$L6e\"]}]\n"])</script>
215<script>self.__next_f.push([1,"6f:T43c,\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M7.01 10.207h-.944l-.515 2.648h.838c.556 0 .97-.105 1.242-.314.272-.21.455-.559.55-1.049.092-.47.05-.802-.124-.995-.175-.193-.523-.29-1.047-.29zM12 5.688C5.373 5.688 0 8.514 0 12s5.373 6.313 12 6.313S24 15.486 24 12c0-3.486-5.373-6.312-12-6.312zm-3.26 7.451c-.261.25-.575.438-.917.551-.336.108-.765.164-1.285.164H5.357l-.327 1.681H3.652l1.23-6.326h2.65c.797 0 1.378.209 1.744.628.366.418.476 1.002.33 1.752a2.836 2.836 0 0 1-.305.847c-.143.255-.33.49-.561.703zm4.024.715l.543-2.799c.063-.318.039-.536-.068-.651-.107-.116-.336-.174-.687-.174H11.46l-.704 3.625H9.388l1.23-6.327h1.367l-.327 1.682h1.218c.767 0 1.295.134 1.586.401s.378.7.263 1.299l-.572 2.944h-1.389zm7.597-2.265a2.782 2.782 0 0 1-.305.847c-.143.255-.33.49-.561.703a2.44 2.44 0 0 1-.917.551c-.336.108-.765.164-1.286.164h-1.18l-.327 1.682h-1.378l1.23-6.326h2.649c.797 0 1.378.209 1.744.628.366.417.477 1.001.331 1.751zM17.766 10.207h-.943l-.516 2.648h.838c.557 0 .971-.105 1.242-.314.272-.21.455-.559.551-1.049.092-.47.049-.802-.125-.995s-.524-.29-1.047-.29z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script>
215<script>self.__next_f.push([1,"4e:[\"$\",\"$L39\",null,{\"value\":\"PHP\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$6f\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"\u003c?\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"php\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"use\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" PHPMailer\\\\PHPMailer\\\\PHPMailer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"use\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" PHPMailer\\\\PHPMailer\\\\SMTP\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"use\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" PHPMailer\\\\PHPMailer\\\\Exception\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"require\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'vendor/autoload.php'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"$$mail \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" new\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" PHPMailer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"try\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":\"$L70\"}],\"\\n\",\"$L71\",\"\\n\",\"$L72\",\"\\n\",\"$L73\",\"\\n\",\"$L74\",\"\\n\",\"$L75\",\"\\n\",\"$L76\",\"\\n\",\"$L77\",\"\\n\",\"$L78\",\"\\n\",\"$L79\",\"\\n\",\"$L7a\",\"\\n\",\"$L7b\",\"\\n\",\"$L7c\",\"\\n\",\"$L7d\",\"\\n\",\"$L7e\",\"\\n\",\"$L7f\",\"\\n\",\"$L80\",\"\\n\",\"$L81\",\"\\n\",\"$L82\",\"\\n\",\"$L83\",\"\\n\",\"$L84\",\"\\n\",\"$L85\",\"\\n\",\"$L86\",\"\\n\",\"$L87\"]}]}]}],\"$L88\",\"$L89\"]}]\n"])</script>
215<script>self.__next_f.push([1,"8a:T63a,"])</script>
215<script>self.__next_f.push([1,"\u003csvg viewBox=\"0 0 24 24\"\u003e\u003cpath d=\"M1.811 10.231c-.047 0-.058-.023-.035-.059l.246-.315c.023-.035.081-.058.128-.058h4.172c.046 0 .058.035.035.07l-.199.303c-.023.036-.082.07-.117.07zM.047 11.306c-.047 0-.059-.023-.035-.058l.245-.316c.023-.035.082-.058.129-.058h5.328c.047 0 .07.035.058.07l-.093.28c-.012.047-.058.07-.105.07zm2.828 1.075c-.047 0-.059-.035-.035-.07l.163-.292c.023-.035.07-.07.117-.07h2.337c.047 0 .07.035.07.082l-.023.28c0 .047-.047.082-.082.082zm12.129-2.36c-.736.187-1.239.327-1.963.514-.176.046-.187.058-.34-.117-.174-.199-.303-.327-.548-.444-.737-.362-1.45-.257-2.115.175-.795.514-1.204 1.274-1.192 2.22.011.935.654 1.706 1.577 1.835.795.105 1.46-.175 1.987-.77.105-.13.198-.27.315-.434H10.47c-.245 0-.304-.152-.222-.35.152-.362.432-.97.596-1.274a.315.315 0 01.292-.187h4.253c-.023.316-.023.631-.07.947a4.983 4.983 0 01-.958 2.29c-.841 1.11-1.94 1.8-3.33 1.986-1.145.152-2.209-.07-3.143-.77-.865-.655-1.356-1.52-1.484-2.595-.152-1.274.222-2.419.993-3.424.83-1.086 1.928-1.776 3.272-2.02 1.098-.2 2.15-.07 3.096.571.62.41 1.063.97 1.356 1.648.07.105.023.164-.117.2m3.868 6.461c-1.064-.024-2.034-.328-2.852-1.029a3.665 3.665 0 01-1.262-2.255c-.21-1.32.152-2.489.947-3.529.853-1.122 1.881-1.706 3.272-1.95 1.192-.21 2.314-.095 3.33.595.923.63 1.496 1.484 1.648 2.605.198 1.578-.257 2.863-1.344 3.962-.771.783-1.718 1.273-2.805 1.495-.315.06-.63.07-.934.106zm2.78-4.72c-.011-.153-.011-.27-.034-.387-.21-1.157-1.274-1.81-2.384-1.554-1.087.245-1.788.935-2.045 2.033-.21.912.234 1.835 1.075 2.21.643.28 1.285.244 1.905-.07.923-.48 1.425-1.228 1.484-2.233z\" fill=\"currentColor\" /\u003e\u003c/svg\u003e"])</script>
215<script>self.__next_f.push([1,"4f:[\"$\",\"$L39\",null,{\"value\":\"Go\",\"children\":[[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"$8a\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"package\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" main\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"import\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" (\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"    \\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"fmt\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"    \\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"net/smtp\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"    \\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"os\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\"}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"func\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\" main\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"() {\"}]]}],\"\\n\",[\"$\",\"span\",null,{\"className\":\"line\",\"children\":\"$L8b\"}],\"\\n\",\"$L8c\",\"\\n\",\"$L8d\",\"\\n\",\"$L8e\",\"\\n\",\"$L8f\",\"\\n\",\"$L90\",\"\\n\",\"$L91\",\"\\n\",\"$L92\",\"\\n\",\"$L93\",\"\\n\",\"$L94\",\"\\n\",\"$L95\",\"\\n\",\"$L96\",\"\\n\",\"$L97\",\"\\n\",\"$L98\",\"\\n\",\"$L99\",\"\\n\",\"$L9a\",\"\\n\",\"$L9b\",\"\\n\",\"$L9c\",\"\\n\",\"$L9d\",\"\\n\",\"$L9e\",\"\\n\",\"$L9f\",\"\\n\",\"$La0\",\"\\n\",\"$La1\",\"\\n\",\"$La2\",\"\\n\",\"$La3\",\"\\n\",\"$La4\",\"\\n\",\"$La5\",\"\\n\",\"$La6\",\"\\n\",\"$La7\",\"\\n\",\"$La8\",\"\\n\",\"$La9\"]}]}]}],\"$Laa\"]}]\n"])</script>
215<script>self.__next_f.push([1,"37:[\"$\",\"$L53\",null,{\"href\":\"/getting-started/send-emails\",\"children\":\"REST API\"}]\n"])</script>
215<script>self.__next_f.push([1,"55:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"smtp_password \"}]\n56:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}]\n57:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" os.getenv(\"}]\n58:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'KEPLARS_SMTP_PASSWORD'\"}]\n59:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]\n5a:[\"$\",\"span\",null,{\"className\":\"line\"}]\n5b:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Create message\"}]}]\n5c:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"message \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" MIMEMultipart()\"}]]}]\n5d:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"message[\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'From'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"] \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" '[email protected]'\"}]]}]\n5e:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"message[\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'To'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"] \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" '[email protected]'\"}]]}]\n5f:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"message[\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Subject'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"] \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'Hello from Python'\"}]]}]\n60:[\"$\",\"span\",null,{\"className\":\"line\"}]\n61:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"body \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'This email was sent using SMTP credentials'\"}]]}]\n62:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"message.attach(MIMEText(body, \"}
215],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'plain'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"))\"}]]}]\n63:[\"$\",\"span\",null,{\"className\":\"line\"}]\n64:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Send email\"}]}]\n65:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"try\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\":\"}]]}]\n66:"])</script>
215<script>self.__next_f.push([1,"[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    server \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" smtplib.SMTP(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'smtp.keplars.com'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"587\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}]\n67:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    server.starttls()  \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"# Enable STARTTLS encryption\"}]]}]\n68:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    server.login(smtp_username, smtp_password)\"}]}]\n69:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    server.send_message(message)\"}]}]\n6a:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    server.quit()\"}]}]\n6b:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"    print\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Email sent successfully'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}]\n6c:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"except\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" Exception\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" as\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" e:\"}]]}]\n6d:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"    print\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"f\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'Error: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"{\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"}\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}]\n6e:[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note:\"}],\" \",[\"$\",\"code\",null,{\"children\":\"smtplib\"}
215],\" is part of Python's standard library (built-in since Python 2.6), so no installation is required.\"]}]\n70:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // Server settings\"}]\n71:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-lig"])</script>
215<script>self.__next_f.push([1,"ht\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"isSMTP\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"();\"}]]}]\n72:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Host \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'smtp.keplars.com'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n73:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"SMTPAuth \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" true\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n74:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Username \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" getenv\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'KEPLARS_SMTP_USERNAME'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]\n75:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Password \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" getenv\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'KEPLARS_SMTP_PASSWORD'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]\n76:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}
215],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"SMTPSecure \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" PHPMailer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"::\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"ENCRYPTION_STARTTLS\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n77:[\"$\",\"sp"])</script>
215<script>self.__next_f.push([1,"an\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Port \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" 587\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n78:[\"$\",\"span\",null,{\"className\":\"line\"}]\n79:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // Recipients\"}]}]\n7a:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"setFrom\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'[email protected]'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]\n7b:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"addAddress\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"'[email protected]'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]\n7c:[\"$\",\"span\",null,{\"className\":\"line\"}]\n7d:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // Content\"}]}]\n7e:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"isHTML\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"false\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\");\"}]]}]\n7f:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Subject \"}
215],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'Hello from PHPMailer'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n80:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"Body \"}],[\"$\",\"span\",null,{\"style\":{"])</script>
215<script>self.__next_f.push([1,"\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'This email was sent using SMTP credentials'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n81:[\"$\",\"span\",null,{\"className\":\"line\"}]\n82:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    $mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"send\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"();\"}]]}]\n83:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"    echo\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" 'Email sent successfully'\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n84:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"} \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"catch\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" (\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"Exception\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" $e) {\"}]]}]\n85:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"    echo\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Error: {\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"$$mail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"-\u003e\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"ErrorInfo\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"}\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\";\"}]]}]\n86:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]\n87:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"?\u003e\"}]}]\n88:[\"$\",\"p\",null,{\"children\":[\"$\",\"strong\",null,{\"children\":\"Install:\"}]}]\n89:[\"$\",\"$L35\",null,{\"className\":\"shiki shiki-themes github-light github-dark\",\"style\":{\"--shiki-light\":\"#24292e\",\"--shiki-dark\":\"#e1e4e8\",\"--shiki-light-bg\":\"#fff\",\"--shiki-dark-bg\":\"#24292e\"},\"tabIndex\":\"0\",\"icon\":\"\u003csvg viewBox=\\\"0 0 24 24\\\"\u003e\u003cpath d=\\\"m 4,4 a 1,1 0 0 0 -0.7070312,0.2929687 1,1 0 0 0 0,1.4140625 L 8.5859375,11 3.2929688,16.292969 a 1,1 0 0 0 0,1.414062 1,1 0 0 0 1.4140624,0 l 5.9999998,-6 a 1.0001,1.0001 0 0 0 0,-1.414062 L 4.7070312,4.2929687 A 1,1 0 0 0 4,4 Z m 8,14 a 1,1 0 0 0 -1,1 1,1 0 0 0 1,1 h 8 a 1,1 0 0 0 1,-1 1,1 0 0 0 -1,-1 z\\\" fill=\\\"currentColor\\\" /\u003e\u003c/svg\u003e\",\"children\":[\"$\",\"$L36\",null,{\"children\":[\"$\",\"code\",null,{\"children\":[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\"
215:\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"composer\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" require\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" phpmailer/phpmailer\"}]]}]}]}]}]\n8b:[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // SMTP Configuration\"}]\n8c:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\","])</script>
215<script>self.__next_f.push([1,"null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    smtpHost \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"smtp.keplars.com\\\"\"}]]}]\n8d:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    smtpPort \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"587\\\"\"}]]}]\n8e:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    username \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" os.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Getenv\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"KEPLARS_SMTP_USERNAME\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}]\n8f:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    password \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" os.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Getenv\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"KEPLARS_SMTP_PASSWORD\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}]\n90:[\"$\",\"span\",null,{\"className\":\"line\"}]\n91:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // Message\"}]}]\n92:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    from \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"[email protected]\\\"\"}]]}]\n93:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    to \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" []\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"string\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"{\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"[email protected]\\\"\"}
215],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]]}]\n94:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    subject \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"Subject: Hello from Go\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"\\\\n\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032"])</script>
215<script>self.__next_f.push([1,"F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\"}]]}]\n95:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    body \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"This email was sent using SMTP credentials\\\"\"}]]}]\n96:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    message \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" []\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"byte\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(subject \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"+\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\" \\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"\\\\n\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\" +\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" body)\"}]]}]\n97:[\"$\",\"span\",null,{\"className\":\"line\"}]\n98:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // Authentication\"}]}]\n99:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    auth \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" smtp.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"PlainAuth\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", username, password, smtpHost)\"}]]}]\n9a:[\"$\",\"span\",null,{\"className\":\"line\"}]\n9b:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6A737D\",\"--shiki-dark\":\"#6A737D\"},\"children\":\"    // Send email with STARTTLS\"}]}]\n9c:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    err \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\":=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" smtp.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"SendMail\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}]]}]\n9d:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\"
215:\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"        smtpHost\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"+\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\":\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"+\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"smtpPort,\"}]]}]\n9e:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"        auth,\"}]}]\n9f:[\"$\""])</script>
215<script>self.__next_f.push([1,",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"        from,\"}]}]\na0:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"        to,\"}]}]\na1:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"        message,\"}]}]\na2:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    )\"}]}]\na3:[\"$\",\"span\",null,{\"className\":\"line\"}]\na4:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"    if\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" err \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"!=\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\" nil\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\" {\"}]]}]\na5:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"        fmt.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Printf\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Error: \"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#005CC5\",\"--shiki-dark\":\"#79B8FF\"},\"children\":\"%v\\\\n\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\", err)\"}]]}]\na6:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#D73A49\",\"--shiki-dark\":\"#F97583\"},\"children\":\"        return\"}]}]\na7:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    }\"}]}]\na8:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"    fmt.\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#6F42C1\",\"--shiki-dark\":\"#B392F0\"},\"children\":\"Println\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"(\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#032F62\",\"--shiki-dark\":\"#9ECBFF\"},\"children\":\"\\\"Email sent successfully\\\"\"}],[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\")\"}]]}]\na9:[\"$\",\"span\",null,{\"className\":\"line\",\"children\":[\"$\",\"span\",null,{\"style\":{\"--shiki-light\":\"#24292E\",\"--shiki-dark\":\"#E1E4E8\"},\"children\":\"}\"}]}]\naa:[\"$\",\"p\",null,{\"children\":[[\"$\",\"strong\",null,{\"children\":\"Note:\"}],\" Go's \",[\"$\",\"code\",null,{\"children\":\"smtp.SendMail\"}],\" automatically uses STARTTLS when available on port 587.\"]}]\n50:[\"$\",\"$L53\",null,{\"href\":\"/getting-started/send-emails\",\"children\":\"Send Emails\"}]\n51:[\"$\",\"$L53\",null,{\"href\":\"/examples\",\"children\":\"Examples\"}]\n52:[\"$\",\"$L53\",null,{\"href\":\"/getting-started/webhooks\",\"children\":\"Webhooks\"}]\n"])</script>
215<script>self.__next_f.push([1,"11:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
215<script>self.__next_f.push([1,"ab:I[27201,[\"/_next/static/chunks/d96012bcfc98706a.js\",\"/_next/static/chunks/73e3194f06db260e.js\"],\"IconMark\"]\nf:null\n13:[[\"$\",\"title\",\"0\",{\"children\":\"Setup SMTP Keys\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Generate SMTP credentials for connected email accounts to use with traditional email clients\"}],[\"$\",\"link\",\"2\",{\"rel\":\"shortcut icon\",\"href\":\"/favicon-32x32.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0b3bf435.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"5\",{\"rel\":\"icon\",\"href\":\"/favicon-32x32.svg\",\"sizes\":\"32x32\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"6\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.svg\",\"sizes\":\"180x180\",\"type\":\"image/svg+xml\"}],[\"$\",\"$Lab\",\"7\",{}]]\n"])</script>
215<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"20466a960600475580715d9a89958ecc","r":1,"spa":2}' crossorigin="anonymous"></script>
215
216</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.