{"_id":"@antelopejs/nodemailer","_rev":"5-30d3d9b67f5bd8a60a5b881d48f577b8","name":"@antelopejs/nodemailer","dist-tags":{"latest":"0.0.5"},"versions":{"0.0.2":{"name":"@antelopejs/nodemailer","version":"0.0.2","_id":"@antelopejs/nodemailer@0.0.2","maintainers":[{"name":"mwesto","email":"contact@mwesto.be"},{"name":"upd4ting","email":"upd4ting@gmail.com"},{"name":"antelopesrl","email":"contact@antelopejs.com"}],"dist":{"shasum":"2ac365c9fab3a151afe669071f0a06ac56a140bc","tarball":"https://registry.npmjs.org/@antelopejs/nodemailer/-/nodemailer-0.0.2.tgz","fileCount":41,"integrity":"sha512-tZPV6DRduTuJFLaMjCpp3ls4VyUBtREquuCBOnLNg1n6zEIvsByFO4Mw+d6oJGcXNOmFKixy1WzYh7I7U44dJQ==","signatures":[{"sig":"MEUCIFU/znjdvWUhyJ3lIuhs322WC6gU0OEken8KnaVrIsPAAiEAyWb/9Rk8Atx0slMEgTxJYITPScEuEwXLEpzNN+IdQT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113327},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"79bc47b0552149c284523cb9563520c9a866b305","scripts":{"dev":"ajs project run -w -p playground","lint":"biome check .","test":"pnpm run build && ajs module test .","build":"rimraf dist && tsc","format":"biome format --write .","prepack":"pnpm run build","release":"pnpm run lint && pnpm run prepack && release-it","lint:fix":"biome check --write ."},"_npmUser":{"name":"upd4ting","email":"upd4ting@gmail.com"},"antelopeJs":{"test":"src/test/antelope.test.ts","implements":["@antelopejs/interface-email"]},"_npmVersion":"11.7.0","description":"TODO: Generate the readme","directories":{},"_nodeVersion":"20.19.1","dependencies":{"nodemailer":"^6.9.0","@antelopejs/interface-core":"^0.0.2","@antelopejs/interface-email":"^0.0.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.8.1","devDependencies":{"sinon":"^21.0.0","rimraf":"^6.0.1","release-it":"^19.2.4","typescript":"^5.8.3","@types/node":"^22.14.1","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","@biomejs/biome":"2.3.2","@types/nodemailer":"^6.4.0","release-it-changelogen":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nodemailer_0.0.2_1774294153276_0.4029766572711637","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@antelopejs/nodemailer","version":"0.0.3","_id":"@antelopejs/nodemailer@0.0.3","maintainers":[{"name":"mwesto","email":"contact@mwesto.be"},{"name":"upd4ting","email":"upd4ting@gmail.com"},{"name":"antelopesrl","email":"contact@antelopejs.com"}],"dist":{"shasum":"7af8d7e303a4d19cc5f1878d377c734706b47c18","tarball":"https://registry.npmjs.org/@antelopejs/nodemailer/-/nodemailer-0.0.3.tgz","fileCount":41,"integrity":"sha512-XRrwOvEo7m/ciD4wDd+5ESHvx1LdpN09ss9O4WlHwAvYAVOxsmW6D/7Bh7yEmo1Q5vH4SZJpAgCy0Uv6wIhv+w==","signatures":[{"sig":"MEYCIQCU6dq1opouUJRkQOkwYpVg+TxYRXCJ6IgvG/NOC2Z6BQIhAKj6dluMcOurfYrYARPY0elfrhhvUPv5924JEu7rpVpC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113601},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"4b21ad45720f0655c694ee7e486286fce24d1d82","scripts":{"dev":"ajs project run -w -p playground","lint":"biome check .","test":"pnpm run build && ajs module test .","build":"rimraf dist && tsc","format":"biome format --write .","prepack":"pnpm run build","release":"pnpm run lint && pnpm run prepack && release-it","lint:fix":"biome check --write ."},"_npmUser":{"name":"upd4ting","email":"upd4ting@gmail.com"},"antelopeJs":{"test":"src/test/antelope.test.ts","implements":["@antelopejs/interface-email"]},"_npmVersion":"11.7.0","description":"TODO: Generate the readme","directories":{},"_nodeVersion":"20.19.1","dependencies":{"nodemailer":"^6.10.1","@antelopejs/interface-core":"^0.0.5","@antelopejs/interface-email":"^0.0.4"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.8.1","devDependencies":{"sinon":"^21.0.3","rimraf":"^6.1.3","release-it":"^19.2.4","typescript":"^5.9.3","@types/node":"^22.19.15","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","@biomejs/biome":"2.3.2","@types/nodemailer":"^6.4.23","release-it-changelogen":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nodemailer_0.0.3_1781622809544_0.6610917142828334","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@antelopejs/nodemailer","version":"0.0.4","_id":"@antelopejs/nodemailer@0.0.4","maintainers":[{"name":"mwesto","email":"contact@mwesto.be"},{"name":"upd4ting","email":"upd4ting@gmail.com"},{"name":"thomasims","email":"thomas@antelopejs.com"},{"name":"antelopesrl","email":"contact@antelopejs.com"}],"dist":{"shasum":"2e99be9163c47f899b0588085abd1fd752d5489f","tarball":"https://registry.npmjs.org/@antelopejs/nodemailer/-/nodemailer-0.0.4.tgz","fileCount":41,"integrity":"sha512-Df2+hXffZ6VhL2j3cIi5Fx8pBZxmKOy8iSdIBQf8J1eUi6WywGcyFV3u/ySw1v1/Ujbhy94YveOa16iSGcv6vQ==","signatures":[{"sig":"MEUCIQCW0MlUTMX9068xNMqqvOXVvOL9CrFAQCYbVB0JiVPAiwIgNJIz0YWXl/URzqXE5JPXUMXB3iphXRSSrLiSO7oyAnA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":117011},"main":"dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"4e69782407bcf9150ef8608775a06551199a5dc0","scripts":{"dev":"ajs project run -w -p playground","lint":"biome check .","test":"pnpm run build && ajs module test .","build":"rimraf dist && tsc","format":"biome format --write .","prepack":"pnpm run build","release":"pnpm run lint && pnpm run prepack && release-it","lint:fix":"biome check --write ."},"_npmUser":{"name":"upd4ting","email":"upd4ting@gmail.com"},"antelopeJs":{"test":"src/test/antelope.test.ts","implements":["@antelopejs/interface-email"]},"_npmVersion":"11.7.0","description":"TODO: Generate the readme","directories":{},"_nodeVersion":"20.19.1","dependencies":{"nodemailer":"^6.10.1","@antelopejs/interface-core":">=0.0.6 <1.0.0","@antelopejs/interface-email":">=0.0.4 <1.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@10.8.1","devDependencies":{"sinon":"^21.0.3","rimraf":"^6.1.3","release-it":"^19.2.4","typescript":"^5.9.3","@types/node":"^22.19.15","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","@biomejs/biome":"2.3.2","@types/nodemailer":"^6.4.23","release-it-changelogen":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/nodemailer_0.0.4_1787325424381_0.43730015114993215","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"_id":"@antelopejs/nodemailer@0.0.5","bugs":{"url":"https://github.com/AntelopeJS/nodemailer/issues"},"dist":{"shasum":"ce6dee3aa93398945ce301592327d19d471b4808","tarball":"https://registry.npmjs.org/@antelopejs/nodemailer/-/nodemailer-0.0.5.tgz","fileCount":44,"integrity":"sha512-dmPIwUmFttgk3/4hLU6jQ3GMeAB2oK2QkiTryeDC7cVcvfRXswd5GZXzRVWZTuo2X4qovbK+qZCSCeACj1Uf0A==","signatures":[{"sig":"MEUCIQCMGJKIoeQgQsK5BnPnVH6fqGFFzFrDSZrlk1jXip0lbQIgHW8W24+oIiDJLyOaeMnI3CdeyQVu361I2vossFEfQd8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICr9cnWxBImo4C1HTTuj8Qy8rCgY4Az3NCzP2hITgjTdAiAXKVpqcBoTBwFu8ptvQMrWypUXWkXiUaRDn1pMz8t3Tw=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@antelopejs%2fnodemailer@0.0.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121938},"main":"dist/index.js","name":"@antelopejs/nodemailer","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"5c3dbb50b40154e9e2834eb4936a67a860acce8a","license":"Apache-2.0","scripts":{"dev":"ajs project run -w -p playground","knip":"knip","lint":"oxlint","test":"pnpm run build && ajs module test .","build":"rimraf dist && tsc","format":"oxfmt .","prepack":"pnpm run build","release":"pnpm run lint && pnpm run prepack && release-it","lint:fix":"oxlint --fix","format:check":"oxfmt --check ."},"version":"0.0.5","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:734f31e5-524c-45cf-ab25-efef8163f4c7"}},"homepage":"https://github.com/AntelopeJS/nodemailer#readme","keywords":["antelopejs","email","nodemailer","smtp"],"antelopeJs":{"test":"src/test/antelope.test.ts","implements":["@antelopejs/interface-email"]},"repository":{"url":"git+https://github.com/AntelopeJS/nodemailer.git","type":"git"},"_npmVersion":"11.19.0","description":"Nodemailer implementation of the AntelopeJS email interface","directories":{},"maintainers":[{"name":"mwesto","email":"contact@mwesto.be"},{"name":"upd4ting","email":"upd4ting@gmail.com"},{"name":"thomasims","email":"thomas@antelopejs.com"},{"name":"antelopesrl","email":"contact@antelopejs.com"}],"_nodeVersion":"24.20.0","dependencies":{"nodemailer":"^6.10.1","@antelopejs/interface-core":">=0.0.6 <1.0.0","@antelopejs/interface-email":">=0.0.5 <1.0.0"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.8.1","devDependencies":{"knip":"^6.34.0","oxfmt":"^0.66.0","sinon":"^21.0.3","oxlint":"1.81.0","rimraf":"^6.1.3","release-it":"^19.2.4","typescript":"^5.9.3","@types/node":"^22.19.15","@types/mocha":"^10.0.10","@types/sinon":"^21.0.0","oxlint-tsgolint":"^7.0.2001","@types/nodemailer":"^6.4.23","release-it-changelogen":"^0.1.0","@antelopejs/tooling-configs":"^0.0.4","eslint-plugin-perfectionist":"^5.11.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nodemailer_0.0.5_1789520369105_0.8604506537524246"}}},"time":{"created":"2026-03-23T19:29:13.198Z","modified":"2026-09-16T00:59:29.527Z","0.0.2":"2026-03-23T19:29:13.420Z","0.0.3":"2026-06-16T15:13:29.678Z","0.0.4":"2026-08-21T15:17:04.502Z","0.0.5":"2026-09-16T00:59:29.204Z"},"description":"Nodemailer implementation of the AntelopeJS email interface","maintainers":[{"name":"mwesto","email":"contact@mwesto.be"},{"name":"upd4ting","email":"upd4ting@gmail.com"},{"name":"thomasims","email":"thomas@antelopejs.com"},{"name":"antelopesrl","email":"contact@antelopejs.com"}],"readme":"# @antelopejs/nodemailer\n\n<div align=\"center\">\n<a href=\"https://www.npmjs.com/package/@antelopejs/nodemailer\"><img alt=\"NPM version\" src=\"https://img.shields.io/npm/v/@antelopejs/nodemailer.svg?style=for-the-badge&labelColor=000000\"></a>\n<a href=\"./LICENSE\"><img alt=\"License\" src=\"https://img.shields.io/npm/l/@antelopejs/nodemailer.svg?style=for-the-badge&labelColor=000000\"></a>\n<a href=\"https://discord.gg/sjK28QHrA7\"><img src=\"https://img.shields.io/badge/Discord-18181B?logo=discord&style=for-the-badge&color=000000\" alt=\"Discord\"></a>\n<a href=\"https://antelopejs.com\"><img src=\"https://img.shields.io/badge/Docs-18181B?style=for-the-badge&color=000000\" alt=\"Documentation\"></a>\n</div>\n\nNodemailer implementation of the AntelopeJS email interface. It sends single\nor batched messages through SMTP, supports inline templates and attachments,\nand can create an Ethereal test account for local development.\n\n## Installation\n\n```bash\npnpm add @antelopejs/nodemailer\n```\n\nThe module implements\n[`@antelopejs/interface-email`](https://github.com/AntelopeJS/interface-email).\n\n## Configuration\n\nAdd the module to `antelope.config.ts`:\n\n```ts\nimport { defineConfig } from \"@antelopejs/interface-core/config\";\n\nexport default defineConfig({\n  name: \"my-app\",\n  modules: {\n    email: {\n      source: {\n        type: \"package\",\n        package: \"@antelopejs/nodemailer\",\n      },\n      config: {\n        host: \"smtp.example.com\",\n        port: 587,\n        secure: false,\n        auth: {\n          user: process.env.SMTP_USER,\n          pass: process.env.SMTP_PASSWORD,\n        },\n        defaults: {\n          from: \"noreply@example.com\",\n        },\n      },\n    },\n  },\n});\n```\n\nWhen `secure` is omitted, port 465 enables it automatically. Authentication is\noptional for SMTP servers that do not require it.\n\nFor local development, replace the SMTP options with `ethereal: true`. The\nmodule creates a temporary Ethereal account and logs its address.\n\n## Usage\n\nUse the provider-independent email interface from application modules:\n\n```ts\nimport { Send } from \"@antelopejs/interface-email\";\n\nconst result = await Send({\n  from: \"noreply@example.com\",\n  to: \"user@example.com\",\n  subject: \"Welcome\",\n  text: \"Your account is ready.\",\n  html: \"<p>Your account is ready.</p>\",\n});\n```\n\nThe implementation also supports `SendBatch`, inline `SendTemplate` calls,\nattachments, reply headers, and message priorities. Provider-hosted templates\nare not supported by Nodemailer.\n\n## Development\n\n```bash\npnpm install\npnpm lint\npnpm format:check\npnpm test\n```\n\nSee the organization-wide\n[contribution guidelines](https://github.com/AntelopeJS/.github/blob/main/CONTRIBUTING.md)\nand [security policy](SECURITY.md).\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md","homepage":"https://github.com/AntelopeJS/nodemailer#readme","keywords":["antelopejs","email","nodemailer","smtp"],"repository":{"url":"git+https://github.com/AntelopeJS/nodemailer.git","type":"git"},"bugs":{"url":"https://github.com/AntelopeJS/nodemailer/issues"},"license":"Apache-2.0"}