{"locator":"npm:@open-mercato/channel-smtp","path":"@open-mercato/channel-smtp","npm":"@open-mercato/channel-smtp","github":null,"repoPath":"open-mercato/open-mercato#main/packages/channel-smtp","kind":"module","type":"official","enterprise":false,"title":"Channel Smtp","summary":"Sends transactional and system email through any SMTP relay over STARTTLS or implicit TLS. Outbound only.","whenToUse":"Use when the app sends transactional or system email through your own mail server or a relay that offers SMTP AUTH, not a provider API.","whenNotToUse":"It does not receive mail. For two-way mailboxes use channel-gmail or channel-imap.","category":"communication","tags":["email","smtp","transactional"],"providers":[{"name":"smtp","label":"SMTP"}],"moduleIds":["channel_smtp"],"requires":[{"raw":"communication_channels","resolvesTo":"core:communication_channels"},{"raw":"integrations","resolvesTo":"core:integrations"},{"raw":"@open-mercato/ai-assistant","resolvesTo":"npm:@open-mercato/ai-assistant"}],"replaces":[],"slotConflicts":[],"renamedFrom":[],"supersededBy":null,"alternatives":[],"status":"active","listed":true,"featured":false,"license":{"spdx":"MIT","kind":"osi","mismatch":false},"version":{"latest":null,"preview":"0.10.1-develop.7749.1.ea3edf75e3","publishedAt":"2026-10-30","integrity":"sha512-9fOg66PLOhRcuO9C1a8l88yjvaS2I4z7UVolktyRaTf7ljTbJm7kdlZ65/kSToSkp1K56Ye0qXyOfzO/XvFctQ==","installableFrom":"2026-10-30","gitRef":null,"recommended":{"0.9":null,"0.8":null,"next":null}},"identity":{"builtFrom":"verified","claimed":false,"source":"npm"},"compat":{"builtFor":{"range":"0.10.1-develop.7749.1.ea3edf75e3","kind":"exact-pin","lines":[],"ranges":{"0.9":"0.10.1-develop.7749.1.ea3edf75e3","0.8":"0.10.1-develop.7749.1.ea3edf75e3"}},"lines":{},"verifiedOn":[],"inPresets":["next"],"ships":{"next":"0.10.1-develop.8111.1.6c779bc21b"}},"anatomy":{"version":"0.10.1-develop.7749.1.ea3edf75e3","coverage":"partial","counts":{"entities":0,"tables":0,"migrations":0,"routes":0,"publicRoutes":0,"aclFeatures":2,"eventsEmitted":0,"eventsConsumed":0,"backendPages":0,"frontendPages":0,"widgets":0,"workers":0,"cli":0,"aiTools":0,"aiAgents":0,"extends":1},"lists":{"aclFeatures":["channel_smtp.view","channel_smtp.configure"],"eventsEmitted":[],"eventsConsumed":[],"env":["OM_CHANNEL_SMTP_ALLOW_INTERNAL_HOSTS","OM_CHANNEL_SMTP_ALLOW_INSECURE_TRANSPORT","SMTP_PORT","SMTP_TLS","SMTP_HOST","SMTP_USER","SMTP_PASSWORD"],"hosts":[],"tables":[],"publicRoutes":[],"credentials":[{"key":"host","type":"text","required":true},{"key":"port","type":"text","required":true},{"key":"tls","type":"select","required":true},{"key":"user","type":"text","required":true},{"key":"password","type":"secret","required":true},{"key":"fromAddress","type":"text","required":true}]},"callout":"ADDS 2 PERMISSIONS","diff":null},"signals":{"receipt":{"0.9":"skipped","0.8":"skipped","next":"untested"},"fit":{"0.9":"no-fit","0.8":"no-fit","next":"unknown"},"anatomy":"partial","supplyChain":{"status":"ok","reasons":[]},"hygiene":{"status":"warn","failing":["peer-exact-pin"]},"maintenance":{"status":"current","lastRelease":"2026-10-30","catchUpDays":null},"declaredVsObserved":{"status":"match","notes":[]}},"tier":"listed","quality":null,"agentPolicy":{"0.9":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}],"consentText":"Install @open-mercato/channel-smtp@0.10.1-develop.7749.1.ea3edf75e3"},"0.8":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"No stable release for this line yet. Only preview builds are published."}],"consentText":"Install @open-mercato/channel-smtp@0.10.1-develop.7749.1.ea3edf75e3"},"next":{"decision":"ask","reasons":[{"code":"NOT_VERIFIED","text":"Not yet tested in a new app on next."},{"code":"IN_PRESET","text":"Nothing to install: a new app already registers channel_smtp in src/modules.ts."}]}},"install":{"cli":"yarn mercato module add @open-mercato/channel-smtp@0.10.1-develop.7749.1.ea3edf75e3","cmm":"npx create-mercato-module install @open-mercato/channel-smtp@0.10.1-develop.7749.1.ea3edf75e3","needsAllowThirdParty":false,"moduleFlag":null},"stats":{"downloads30d":26202,"stars":null},"sigil":{"glyph":"0000001","phase":108,"publicRoutes":false},"links":{"page":"https://modules.openmercato.com/m/@open-mercato/channel-smtp","md":"https://modules.openmercato.com/m/@open-mercato/channel-smtp.md","json":"https://modules.openmercato.com/m/@open-mercato/channel-smtp.json","facts":"https://modules.openmercato.com/m/@open-mercato/channel-smtp/v/0.10.1-develop.7749.1.ea3edf75e3/facts.json","npm":"https://www.npmjs.com/package/@open-mercato/channel-smtp","repo":"https://github.com/open-mercato/open-mercato","docs":null},"addedAt":"2026-11-04","updatedAt":"2026-11-11T19:41:53Z","_meta":{"com.openmercato.modules/installable":{"0.9":null,"0.8":null,"next":null}},"facts":{"factsVersion":1,"extractor":{"engine":"@open-mercato/cli@0.9.0 extractModuleFacts","factsContractVersion":2,"catalog":"om-modules rentgen 5","durationMs":79},"package":{"locator":"npm:@open-mercato/channel-smtp","name":"@open-mercato/channel-smtp","version":"0.10.1-develop.7749.1.ea3edf75e3","integrity":"sha512-9fOg66PLOhRcuO9C1a8l88yjvaS2I4z7UVolktyRaTf7ljTbJm7kdlZ65/kSToSkp1K56Ye0qXyOfzO/XvFctQ==","source":"npm-tarball","gitRef":null},"gate":{"installable":true,"needsModuleFlag":false,"reason":null,"modules":[{"id":"channel_smtp","src":true,"dist":true}]},"kind":"module","license":{"value":"MIT","kind":"osi","mismatch":false,"sources":{"packageJson":"MIT","licenseFile":null,"moduleInfo":null,"integrationTs":"MIT"}},"omPeers":{"@open-mercato/ai-assistant":"0.10.1-develop.7749.1.ea3edf75e3","@open-mercato/shared":"0.10.1-develop.7749.1.ea3edf75e3","@open-mercato/ui":"0.10.1-develop.7749.1.ea3edf75e3"},"dependencies":{"@open-mercato/core":"0.10.1-develop.7749.1.ea3edf75e3","@types/nodemailer":"^8.0.1","nodemailer":"^10.0.10"},"agentsMd":false,"readmeExcerpt":null,"modules":[{"id":"channel_smtp","title":null,"description":"Outbound SMTP relay email channel provider for the Communications Hub.","requires":[{"raw":"communication_channels","resolvesTo":"core:communication_channels"},{"raw":"integrations","resolvesTo":"core:integrations"}],"ejectable":null,"data":{"entities":[],"migrations":{"count":0,"first":null,"last":null},"customEntities":0},"http":{"routes":[],"legacyRouteFiles":0,"authResolved":1},"security":{"aclFeatures":["channel_smtp.view","channel_smtp.configure"],"setupDefaultRoleFeatures":true},"events":{"emits":[],"subscribes":[]},"ui":{"backendPages":[],"frontendPages":[],"widgets":0,"extensionHosts":0},"background":{"workers":[],"cli":[]},"ai":{"tools":[],"agents":[]},"config":{"credentials":[{"key":"host","type":"text","required":true},{"key":"port","type":"text","required":true},{"key":"tls","type":"select","required":true},{"key":"user","type":"text","required":true},{"key":"password","type":"secret","required":true},{"key":"fromAddress","type":"text","required":true}],"env":[{"name":"OM_CHANNEL_SMTP_ALLOW_INTERNAL_HOSTS","src":{"file":"src/modules/channel_smtp/lib/credentials.ts","line":10}},{"name":"OM_CHANNEL_SMTP_ALLOW_INSECURE_TRANSPORT","src":{"file":"src/modules/channel_smtp/lib/credentials.ts","line":14}},{"name":"SMTP_PORT","src":{"file":"src/modules/channel_smtp/lib/preset.ts","line":49}},{"name":"SMTP_TLS","src":{"file":"src/modules/channel_smtp/lib/preset.ts","line":56}},{"name":"SMTP_HOST","src":{"file":"src/modules/channel_smtp/lib/preset.ts","line":65}},{"name":"SMTP_USER","src":{"file":"src/modules/channel_smtp/lib/preset.ts","line":66}},{"name":"SMTP_PASSWORD","src":{"file":"src/modules/channel_smtp/lib/preset.ts","line":67}}]},"network":{"hosts":[],"undeclared":[]},"extends":[{"kind":"specialized-registry","target":"integration:channel_smtp"}],"omImports":{"@open-mercato/core":{"modules/communication_channels/lib/adapter":["ChannelAdapter","ChannelCapabilities","ChannelNativeContent","ConvertOutboundInput","GetMessageStatusInput","InboundMessage","MessageStatus","NormalizedInboundMessage","SendMessageInput","SendMessageResult","ValidateCredentialsInput","ValidateCredentialsResult","VerifyWebhookInput"],"modules/communication_channels/lib/adapter-registry-singleton":["hasChannelAdapter","registerChannelAdapter"],"modules/communication_channels/lib/email-capabilities":["baseEmailCapabilities"],"modules/communication_channels/lib/email-mime":["htmlToText","sanitizeHeaderValue","stringOrUndefined","toAddressList"],"modules/communication_channels/lib/ensure-system-email-channel":["ensureSystemEmailChannel"],"modules/communication_channels/lib/system-email-provider-config":["isSelectedSystemEmailProvider","registerSystemEmailProviderConfigResolver"]},"@open-mercato/shared":{"lib/boolean":["parseBooleanWithDefault"],"lib/di/container":["AppContainer"],"lib/email/config":["normalizeEnvString","resolveDefaultEmailFromAddress"],"lib/host-pinning":["isInternalHost","resolveSafeHostAddress"],"lib/logger":["createLogger"],"lib/telemetry/runtime":["getTelemetryRuntime"],"modules/integrations/types":["IntegrationBundle","IntegrationDefinition","IntegrationScope","buildIntegrationDetailWidgetSpotId"],"modules/setup":["ModuleSetupConfig"]}},"collisionKeys":{"moduleId":"channel_smtp","tables":[],"aclFeatures":["channel_smtp.view","channel_smtp.configure"],"eventIds":[],"backendRoutes":[]},"publicRoutes":0,"glyph":"0000001","lint":[{"code":"peer-exact-pin","severity":"warn","message":"Peer dependencies pin Open Mercato exactly (@open-mercato/ai-assistant 0.10.1-develop.7749.1.ea3edf75e3 and 2 more), so an app on any other release of Open Mercato gets a Yarn peer warning.","anchor":"i2 §1.4","src":null},{"code":"no-agents-md","severity":"info","message":"No AGENTS.md in the package.","anchor":"g3 §3","src":null},{"code":"peer-range-behind","severity":"info","message":"Built for 0.10.1-develop.7749.1.ea3edf75e3 does not include Open Mercato 0.9.0.","anchor":"w4 §4.2","src":null},{"code":"ships-tests","severity":"info","message":"The tarball ships test files.","anchor":null,"src":null},{"code":"version-drift","severity":"info","message":"integration.ts says 0.1.0, package.json says 0.10.1-develop.7749.1.ea3edf75e3.","anchor":null,"src":{"file":"src/modules/channel_smtp/integration.ts","line":5}}]}],"coverage":{"routesAuthResolved":1,"integrationTs":"expanded"},"diagnostics":[]},"receipts":[],"rules":[{"id":"LST-1","pass":true,"detail":"Descriptor is valid."},{"id":"LST-2","pass":true,"detail":"Official package with a preview only."},{"id":"LST-3","pass":true,"detail":"src/modules and dist/modules pair found."},{"id":"LST-4","pass":true,"detail":"License: MIT."},{"id":"LST-5","pass":true,"detail":"No known malware or open critical advisory."},{"id":"LST-6","pass":true,"detail":"Name reviewed at merge."},{"id":"VER-1","pass":false,"detail":"Receipt on 0.9: skipped."},{"id":"VER-2","pass":false,"detail":"Fits statically on 0.9: no-fit."},{"id":"VER-3","pass":true,"detail":"Supply chain: ok."},{"id":"VER-4","pass":true,"detail":"No lint errors."},{"id":"VER-5","pass":true,"detail":"No repository in the descriptor to compare."}],"maintainers":["pat-lewczuk","patryk.andrzejewski","piotrkarwatka"]}
