{"_id":"worker-mailer","_rev":"15-2c4751932f7c016241e0e8d654637969","name":"worker-mailer","dist-tags":{"beta":"0.0.4-beta.0","latest":"1.2.1"},"versions":{"0.0.1-beta.0":{"name":"worker-mailer","version":"0.0.1-beta.0","keywords":["cloudflare","worker","cloudflare-worker","email","smtp"],"author":{"name":"zou-yu"},"_id":"worker-mailer@0.0.1-beta.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"dist":{"shasum":"84aa140dd53637ae2b1395a9af659af33d30fb6e","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-0.0.1-beta.0.tgz","fileCount":2,"integrity":"sha512-Dz6oFYW2xghmEGQU1vIDxlwkQZ8cPdjKvMZpKmXjmVgo7Iy2wqjUfejQVrxdKM1uAK/6sbNLS4YNOlDDTrkuvg==","signatures":[{"sig":"MEUCIAy3feJTPTv3uL9Igr7I48q9lxqtXZft58yoYRcAlMnRAiEA8c5Cq/j0SIzfUCV2x45VnzYsQRIclSqM6hx2Dw7Ro3I=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":729},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"1b0946473fb6510bb82812e1fd2d13f5c560b5d4","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_npmVersion":"10.5.2","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_0.0.1-beta.0_1721937387332_0.09185390683581618","host":"s3://npm-registry-packages"}},"0.0.2-beta.0":{"name":"worker-mailer","version":"0.0.2-beta.0","keywords":["cloudflare","worker","cloudflare-worker","email","smtp"],"author":{"name":"zou-yu"},"_id":"worker-mailer@0.0.2-beta.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"dist":{"shasum":"3f4cc296bf702c0f07ff2dc07c39fe08796979d8","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-0.0.2-beta.0.tgz","fileCount":6,"integrity":"sha512-gGNvxrBb1LSDhQB57x6IPJIUYznV4NjACPChBEKh65xnvktnlP9fHMhKo5cseKYenIyuPaHFdFUHU4TrsVRBYg==","signatures":[{"sig":"MEYCIQCUjhq5qLBsW4NOKygaJsE9Qp3lkbXWtI22wHQO+HswqAIhAII/k8SgRKF1mMLxYb7oMcdhf7PrxuL6YCU/0FMiVUu3","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":20646},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"819f6909c9d466536f0dc83e43f62d6d33dd2936","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_npmVersion":"10.5.2","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_0.0.2-beta.0_1721937524332_0.8855079162176367","host":"s3://npm-registry-packages"}},"0.0.3-beta.0":{"name":"worker-mailer","version":"0.0.3-beta.0","keywords":["cloudflare","worker","cloudflare-worker","email","smtp"],"author":{"name":"zou-yu"},"_id":"worker-mailer@0.0.3-beta.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"dist":{"shasum":"c394700e0d419d0a317459e9aa625e37e1816910","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-0.0.3-beta.0.tgz","fileCount":6,"integrity":"sha512-VsSP+WfLjfny74IPEPkVwOjF5wkFzXiMYXJfZOKjdkEaKTBAu8LHyw0MOlEgKSGwqtS5Emcrjf8uA4qebvR77w==","signatures":[{"sig":"MEUCIAmHdySowNpaGB/G3T+1aFKKBibbVIxzMTmActHd0IiyAiEA8qi7RzWxqlAAmjv3nADdE1xbWaWCNWY5meI4dz0t4sI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25124},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","gitHead":"96fb32f40046513e5b1223bb6ee4a649c063a7fc","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_npmVersion":"10.5.2","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_0.0.3-beta.0_1721937590446_0.17765216975361198","host":"s3://npm-registry-packages"}},"0.0.4-beta.0":{"name":"worker-mailer","version":"0.0.4-beta.0","keywords":["cloudflare","worker","cloudflare-worker","email","smtp"],"author":{"name":"zou-yu"},"_id":"worker-mailer@0.0.4-beta.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"400ae84ef981c84873c846fcc83568977a544c67","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-0.0.4-beta.0.tgz","fileCount":7,"integrity":"sha512-g/v3EO7djco/9kMtH+kW2xOj5B9KKpKLnmjpfqziDpx+p7YcTDET7k4So+inWdXT//JdpHwumcvyGrcy4WIlCA==","signatures":[{"sig":"MEYCIQCP3CMEm/RFWQiBDtMZhj2QiiV5P0SXGVUirGjVkFjadAIhAMEJvyeWGdc3YiDxRDfPNxya4aFToN2GNq1n97/15Qzp","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26757},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"99b5f06bb002b9779c546e24a270eb058a8e913f","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git"},"_npmVersion":"10.5.2","description":"Worker Mailer is an SMTP client that runs on Cloudflare Workers. It leverages [Cloudflare TCP Sockets](https://developers.cloudflare.com/workers/runtime-apis/tcp-sockets/) and doesn't rely on any other dependencies.","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_0.0.4-beta.0_1722017824120_0.47487642065412783","host":"s3://npm-registry-packages"}},"1.0.0":{"name":"worker-mailer","version":"1.0.0","keywords":["cloudflare","worker","cloudflare-worker","email","smtp"],"author":{"name":"zou-yu"},"_id":"worker-mailer@1.0.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"326be90f6c31bc7eb982bf918cc7429d3ef017fd","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.0.0.tgz","fileCount":7,"integrity":"sha512-dTArXaxF457hXPykrGvv18zn8H10dUF4PJnNVjRxqkFfcHEY/Yxibj42VrKqbd5bXoYmXTqDdxPv4gENDbNP2w==","signatures":[{"sig":"MEQCIANTfPpIci0Le2W9ZRTMKHq/vvp2MaiOdk/xTgGlDXQ6AiAUoBg5c8dfnjuZH/IFJrAhI+hqyznLXlm139dSZ8HODQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":27779},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","gitHead":"49fc4129e6a74e248ee5a1f9d0a4697e61962346","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.5.2","description":"Worker Mailer is an SMTP client that runs on Cloudflare Workers. It leverages [Cloudflare TCP Sockets](https://developers.cloudflare.com/workers/runtime-apis/tcp-sockets/) and doesn't rely on any other dependencies.","directories":{},"_nodeVersion":"20.13.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.0.0_1731618412479_0.834266249023667","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"worker-mailer","version":"1.0.1","keywords":["cloudflare","worker","cloudflare-worker","email","smtp"],"author":{"name":"zou-yu"},"_id":"worker-mailer@1.0.1","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"43269dd99ee6b2e252d00a8384a2fd817088b6d9","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.0.1.tgz","fileCount":7,"integrity":"sha512-y6U9B2cWGGasj7B+6ZtRBsdTPRAZ0P73ykKq5hsIHXReUB8WAq7feS4JoN2xmAZl7yQpVz/GTLqmqLyDmsOUnw==","signatures":[{"sig":"MEYCIQCd8goHtzCpmzQYKOqeVBGl6aIFshtgug/i0/7KQZboHwIhAKNZn3FKyUAqc/52EigZOI6HicAjqOfUk/67BiFUARoC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":30676},"main":"./dist/index.js","_from":"file:worker-mailer-1.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/e560ed4b0439940e0ead62a707636ff6/worker-mailer-1.0.1.tgz","_integrity":"sha512-y6U9B2cWGGasj7B+6ZtRBsdTPRAZ0P73ykKq5hsIHXReUB8WAq7feS4JoN2xmAZl7yQpVz/GTLqmqLyDmsOUnw==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.0.1_1731652054761_0.34735728801517785","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"worker-mailer","version":"1.1.0","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.1.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"598635f0758d0b69ba587bd3181be24e2a59a14a","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.1.0.tgz","fileCount":7,"integrity":"sha512-gDH124MICYk8U5bJg+OU2iqy9NvFILwVrBfTpZVfR2uioF1rbocFpwVeNLOHNlJPlas85PEvgdcneoJMlIknzA==","signatures":[{"sig":"MEUCIEydnQ4IHXneIBopuF6cX0AFKLkcFbqPs5HtGSS2e2/QAiEAor8lSNcHB5uWMfllp44hIzJXvU/EEzZzRI8fzw/5Es0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42948},"main":"./dist/index.js","_from":"file:worker-mailer-1.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/a410eb49c13beadfc2c2185766ae45a4/worker-mailer-1.1.0.tgz","_integrity":"sha512-gDH124MICYk8U5bJg+OU2iqy9NvFILwVrBfTpZVfR2uioF1rbocFpwVeNLOHNlJPlas85PEvgdcneoJMlIknzA==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.1.0_1743759623608_0.7850180816949199","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"worker-mailer","version":"1.1.1","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.1.1","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"dfba5997b79095aaa0c232bcdd6c687ec7d12130","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.1.1.tgz","fileCount":7,"integrity":"sha512-UPPd48aBMVuAE2j9ha7wDEhBakM23zKBk8wd9lLUhChExPeq8B8cO6C1ur4hMOypmJO7mZ+xTZff1KoCKprvGA==","signatures":[{"sig":"MEQCIC9LLZWcqqTtuqvuS/MDCcAZLwKhRSPKBw/FIH7503tqAiBjcHaxvhcGvAQRfp/X7BXiS8SOFJk/pyKqK7TAv+Kfow==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42950},"main":"./dist/index.js","_from":"file:worker-mailer-1.1.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/ecd62931a83915aff50f0f621f13a5d7/worker-mailer-1.1.1.tgz","_integrity":"sha512-UPPd48aBMVuAE2j9ha7wDEhBakM23zKBk8wd9lLUhChExPeq8B8cO6C1ur4hMOypmJO7mZ+xTZff1KoCKprvGA==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.1.1_1743945653973_0.7115754649598696","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"worker-mailer","version":"1.1.2","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.1.2","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"458967cf9e03c9d7cd03d530f9196867c1dc0599","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.1.2.tgz","fileCount":7,"integrity":"sha512-KWNFZK4kbVnEupBaqOHoM85EQHgHW78WX6661RWhkiatr6XezDZPlHn9r/Pm9ZySXPlmS5q1yG/GoLctGhl31Q==","signatures":[{"sig":"MEUCIDcUwmgjjttV5AiGg+31ltAL9eF3Y/DMNBY6hni9UJg6AiEA701/3meUXmZ9aWmrG2s+9u0kHIigfdZt+O0xtxjdMWw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43738},"main":"./dist/index.js","_from":"file:worker-mailer-1.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/ff44de0fe346ad1ae698529d97440168/worker-mailer-1.1.2.tgz","_integrity":"sha512-KWNFZK4kbVnEupBaqOHoM85EQHgHW78WX6661RWhkiatr6XezDZPlHn9r/Pm9ZySXPlmS5q1yG/GoLctGhl31Q==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.1.2_1744794569227_0.9318058207911","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"worker-mailer","version":"1.1.3","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.1.3","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"fd2e6b2881c08ff93a7690067f9c6abf0f2fce20","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.1.3.tgz","fileCount":7,"integrity":"sha512-8jkbf843tAV9KMWQESrduMt6LKolYXJ9rmWO0W8ZM3CW0Mb+qaVaktXhqvAo7cLvYnYSxYBS8oJl0pgr75XipQ==","signatures":[{"sig":"MEUCIDr6zAC1WWmHDaeIYe3UFmIQ8t1K1eNAnVgaGiquuv+JAiEAipwmia2v/XWCywxj6fUgH/EDGNEnJ+D0sbN+8OOulrI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43738},"main":"./dist/index.js","_from":"file:worker-mailer-1.1.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/586c0d55790d068e68a5303544d0e58c/worker-mailer-1.1.3.tgz","_integrity":"sha512-8jkbf843tAV9KMWQESrduMt6LKolYXJ9rmWO0W8ZM3CW0Mb+qaVaktXhqvAo7cLvYnYSxYBS8oJl0pgr75XipQ==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.1.3_1744795639785_0.7148508866670786","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"worker-mailer","version":"1.1.4","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.1.4","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"41d27fb6eff7b835434e8a615c102f104256f73a","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.1.4.tgz","fileCount":7,"integrity":"sha512-hRLnS/pkNFycCAlny2QKXgvgNF16Uc0MMblravtbsTqRRmMEyoqBnmGtrjwRellzH4ey59bAlNSjE/iQlZ7WVQ==","signatures":[{"sig":"MEYCIQD9XIekXDEaM6o9+mDnfsjsEXDGQwpjVq4F7mstYh8qCwIhALgPTCsFL702ZV2HZh7qSaNlNUKe+AavgWJIiAKEhWAz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43738},"main":"./dist/index.js","_from":"file:worker-mailer-1.1.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/5592bf16102e702bd9a95581db5529f2/worker-mailer-1.1.4.tgz","_integrity":"sha512-hRLnS/pkNFycCAlny2QKXgvgNF16Uc0MMblravtbsTqRRmMEyoqBnmGtrjwRellzH4ey59bAlNSjE/iQlZ7WVQ==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.0","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.1.4_1745837229159_0.6056155372678371","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"worker-mailer","version":"1.1.5","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.1.5","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"275b380942808a7b212206446c5735c1e342b75b","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.1.5.tgz","fileCount":7,"integrity":"sha512-Yq+LiQ25CHjdQakO3IE/srzYFS94XVQH9e0z30y/NoPyw6vLiLacYDPOBDD9CLpEMhy6vTgLQbsJzFBt9/7E2w==","signatures":[{"sig":"MEUCIQCEUtOEqr3tS6uKes8qxj4jhuKE+VbZwV0tTUtboV/EzAIgCAV6vkIry3y6viICRuDwYBbhC6BR64DJ/smNKKuxXSU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":44116},"main":"./dist/index.js","_from":"file:worker-mailer-1.1.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/5a40a1f631c11e28c5136bfaf71509e1/worker-mailer-1.1.5.tgz","_integrity":"sha512-Yq+LiQ25CHjdQakO3IE/srzYFS94XVQH9e0z30y/NoPyw6vLiLacYDPOBDD9CLpEMhy6vTgLQbsJzFBt9/7E2w==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.4","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.1.5_1754400546995_0.596267614521875","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"worker-mailer","version":"1.2.0","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"license":"MIT","_id":"worker-mailer@1.2.0","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"homepage":"https://github.com/zou-yu/worker-mailer","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"dist":{"shasum":"181f357d2f4f07f1edce60ba367d50539d6d21ca","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.2.0.tgz","fileCount":7,"integrity":"sha512-3ItF6oxUHYTEsEJkW5VdU+sc3iIXoY/jwl19m7wd43LwWm98cRQQRsKM+94XP5tilbmlvbX5N+FI7ZaqxlPpjA==","signatures":[{"sig":"MEQCID+xRJPRGTYmTCHcH/W35YpwaH5RFD/WRcGFapv1C+gbAiBAL1JKxTSZ1wZVvwog8j+WY+suTIgDS6gmdB645yDh7g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45773},"main":"./dist/index.js","_from":"file:worker-mailer-1.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.mjs","scripts":{"test":"vitest","build":"tsup","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"_resolved":"/tmp/34ee9f9fe141b74152916bcebcbac24c/worker-mailer-1.2.0.tgz","_integrity":"sha512-3ItF6oxUHYTEsEJkW5VdU+sc3iIXoY/jwl19m7wd43LwWm98cRQQRsKM+94XP5tilbmlvbX5N+FI7ZaqxlPpjA==","repository":{"url":"git+https://github.com/zou-yu/worker-mailer.git","type":"git"},"_npmVersion":"10.8.2","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","directories":{},"_nodeVersion":"20.19.5","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.2.3","libqp":"^2.1.1","vitest":"1.5.0","prettier":"^3.3.3","wrangler":"^3.60.3","typescript":"^5.5.2","@types/node":"^20.14.12","@types/libqp":"^1.1.3","letterparser":"^0.1.8","@changesets/cli":"^2.27.9","@cloudflare/workers-types":"^4.20240722.0","@cloudflare/vitest-pool-workers":"^0.4.5"},"_npmOperationalInternal":{"tmp":"tmp/worker-mailer_1.2.0_1762869460035_0.8575060921026361","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"worker-mailer","version":"1.2.1","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"author":{"name":"zou-yu"},"repository":{"type":"git","url":"git+https://github.com/zou-yu/worker-mailer.git"},"license":"MIT","homepage":"https://github.com/zou-yu/worker-mailer","devDependencies":{"@changesets/cli":"^2.27.9","@cloudflare/vitest-pool-workers":"^0.4.5","@cloudflare/workers-types":"^4.20240722.0","@types/libqp":"^1.1.3","@types/node":"^20.14.12","letterparser":"^0.1.8","libqp":"^2.1.1","prettier":"^3.3.3","tsup":"^8.2.3","typescript":"^5.5.2","vitest":"1.5.0","wrangler":"^3.60.3"},"scripts":{"build":"tsup","test":"vitest","format":"prettier '**/*.{json,ts,js,cjs,mjs,md}' --write --ignore-path .gitignore"},"_id":"worker-mailer@1.2.1","description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"_integrity":"sha512-gS2ei/mrpRqNs+AHmqxhT6vFPwCLw2qnz5ShmyGD0ULaU0Q9hxnFAcx9jhAip/MnD6+MjgnQu6hQQgA8mlOkVA==","_resolved":"/tmp/63d1fb869948e40a0b809855a6445ff2/worker-mailer-1.2.1.tgz","_from":"file:worker-mailer-1.2.1.tgz","_nodeVersion":"20.19.5","_npmVersion":"10.8.2","dist":{"integrity":"sha512-gS2ei/mrpRqNs+AHmqxhT6vFPwCLw2qnz5ShmyGD0ULaU0Q9hxnFAcx9jhAip/MnD6+MjgnQu6hQQgA8mlOkVA==","shasum":"18f1f86cd66ce2d0bc8a150df0ae67432c45ab49","tarball":"https://registry.npmjs.org/worker-mailer/-/worker-mailer-1.2.1.tgz","fileCount":7,"unpackedSize":46067,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID852aIzNLi+TPu74TxbRxhBjdO4ceCOzD5UG/pWKegAAiAchUS0XOu9xM3zdbZ4q7syyn5aETl3JZnvjyEQ3Zylyg=="}]},"_npmUser":{"name":"zou-yu","email":"zougengyu@163.com"},"directories":{},"maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/worker-mailer_1.2.1_1763190710676_0.9823881465061239"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-25T19:56:27.331Z","modified":"2025-11-15T07:11:51.137Z","0.0.1-beta.0":"2024-07-25T19:56:27.509Z","0.0.2-beta.0":"2024-07-25T19:58:44.537Z","0.0.3-beta.0":"2024-07-25T19:59:50.623Z","0.0.4-beta.0":"2024-07-26T18:17:04.371Z","1.0.0":"2024-11-14T21:06:52.660Z","1.0.1":"2024-11-15T06:27:35.016Z","1.1.0":"2025-04-04T09:40:23.781Z","1.1.1":"2025-04-06T13:20:54.295Z","1.1.2":"2025-04-16T09:09:29.454Z","1.1.3":"2025-04-16T09:27:19.969Z","1.1.4":"2025-04-28T10:47:09.360Z","1.1.5":"2025-08-05T13:29:07.188Z","1.2.0":"2025-11-11T13:57:40.214Z","1.2.1":"2025-11-15T07:11:50.912Z"},"bugs":{"url":"https://github.com/zou-yu/worker-mailer/issues"},"author":{"name":"zou-yu"},"license":"MIT","homepage":"https://github.com/zou-yu/worker-mailer","keywords":["cloudflare","workers","cloudflare-workers","email","smtp"],"repository":{"type":"git","url":"git+https://github.com/zou-yu/worker-mailer.git"},"description":"[English](./README.md) | [简体中文](./README_zh-CN.md)","maintainers":[{"name":"zou-yu","email":"zougengyu@163.com"}],"readme":"# Worker Mailer\n\n[English](./README.md) | [简体中文](./README_zh-CN.md)\n\n[![npm version](https://badge.fury.io/js/worker-mailer.svg)](https://badge.fury.io/js/worker-mailer)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\nWorker Mailer is an SMTP client that runs on Cloudflare Workers. It leverages [Cloudflare TCP Sockets](https://developers.cloudflare.com/workers/runtime-apis/tcp-sockets/) and doesn't rely on any other dependencies.\n\n## Features\n\n- 🚀 Completely built on the Cloudflare Workers runtime with no other dependencies\n- 📝 Full TypeScript type support\n- 📧 Supports sending plain text and HTML emails with attachments\n- 🔒 Supports multiple SMTP authentication methods: `plain`, `login`, and `CRAM-MD5`\n- 📅 DSN support\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Quick Start](#quick-start)\n- [API Reference](#api-reference)\n- [Limitations](#limitations)\n- [Contributing](#contributing)\n- [License](#license)\n\n## Installation\n\n```shell\nnpm i worker-mailer\n```\n\n## Quick Start\n\n1. Configure your `wrangler.toml`:\n\n```toml\ncompatibility_flags = [\"nodejs_compat\"]\n# or compatibility_flags = [\"nodejs_compat_v2\"]\n```\n\n2. Use in your code:\n\n```typescript\nimport { WorkerMailer } from 'worker-mailer'\n\n// Connect to SMTP server\nconst mailer = await WorkerMailer.connect({\n  credentials: {\n    username: 'bob@acme.com',\n    password: 'password',\n  },\n  authType: 'plain',\n  host: 'smtp.acme.com',\n  port: 587,\n  secure: true,\n})\n\n// Send email\nawait mailer.send({\n  from: { name: 'Bob', email: 'bob@acme.com' },\n  to: { name: 'Alice', email: 'alice@acme.com' },\n  subject: 'Hello from Worker Mailer',\n  text: 'This is a plain text message',\n  html: '<h1>Hello</h1><p>This is an HTML message</p>',\n})\n```\n\n3. Using with modern JavaScript frameworks (Next.js, Nuxt, SvelteKit, etc.)\n\nWhen working with frameworks that use Node.js as their development runtime, you'll need to handle the fact that Cloudflare Workers-specific APIs (like `cloudflare:sockets`) aren't available during local development.\n\nThe recommended approach is to use conditional dynamic imports. Here's an example for Nuxt.js:\n\n```typescript\nexport default defineEventHandler(async event => {\n  // Check if running in development environment\n  if (import.meta.dev) {\n    // Development: Use nodemailer (or any Node.js compatible email library)\n    const nodemailer = await import('nodemailer')\n    const transporter = nodemailer.default.createTransport()\n    return await transporter.sendMail()\n  } else {\n    // Production: Use worker-mailer in Cloudflare Workers environment\n    const { WorkerMailer } = await import('worker-mailer')\n    const mailer = await WorkerMailer.connect()\n    return await mailer.send()\n  }\n})\n```\n\nThis pattern ensures your application works seamlessly in both development and production environments.\n\n## API Reference\n\n### WorkerMailer.connect(options)\n\nCreates a new SMTP connection.\n\n```typescript\ntype WorkerMailerOptions = {\n  host: string // SMTP server hostname\n  port: number // SMTP server port (usually 587 or 465)\n  secure?: boolean // Use TLS (default: false)\n  startTls?: boolean // Upgrade to TLS if SMTP server supports (default: true)\n  credentials?: {\n    // SMTP authentication credentials\n    username: string\n    password: string\n  }\n  authType?:\n    | 'plain'\n    | 'login'\n    | 'cram-md5'\n    | Array<'plain' | 'login' | 'cram-md5'>\n  logLevel?: LogLevel // Logging level (default: LogLevel.INFO)\n  socketTimeoutMs?: number // Socket timeout in milliseconds\n  responseTimeoutMs?: number // Server response timeout in milliseconds\n  dsn?: {\n    RET?: {\n      HEADERS?: boolean\n      FULL?: boolean\n    }\n    NOTIFY?: {\n      DELAY?: boolean\n      FAILURE?: boolean\n      SUCCESS?: boolean\n    }\n  }\n}\n```\n\n### mailer.send(options)\n\nSends an email.\n\n```typescript\ntype EmailOptions = {\n  from:\n    | string\n    | {\n        // Sender's email\n        name?: string\n        email: string\n      }\n  to:\n    | string\n    | string[]\n    | {\n        // Recipients (TO)\n        name?: string\n        email: string\n      }\n    | Array<{ name?: string; email: string }>\n  reply?:\n    | string\n    | {\n        // Reply-To address\n        name?: string\n        email: string\n      }\n  cc?:\n    | string\n    | string[]\n    | {\n        // Carbon Copy recipients\n        name?: string\n        email: string\n      }\n    | Array<{ name?: string; email: string }>\n  bcc?:\n    | string\n    | string[]\n    | {\n        // Blind Carbon Copy recipients\n        name?: string\n        email: string\n      }\n    | Array<{ name?: string; email: string }>\n  subject: string // Email subject\n  text?: string // Plain text content\n  html?: string // HTML content\n  headers?: Record<string, string> // Custom email headers\n  attachments?: { filename: string; content: string; mimeType?: string }[] // Attachments, content must be base64-encoded, it will try to infer mimeType if not set\n  dsnOverride?: // overrides dsn defined in WorkerMailer, if not set, it will take the WorkerMailer-Option.\n  {\n    envelopeId?: string | undefined\n    RET?: {\n      HEADERS?: boolean\n      FULL?: boolean\n    }\n    NOTIFY?: {\n      DELAY?: boolean\n      FAILURE?: boolean\n      SUCCESS?: boolean\n    }\n  }\n}\n```\n\n### Static Method: WorkerMailer.send()\n\nSend a one-off email without maintaining the connection.\n\n```typescript\nawait WorkerMailer.send(\n  {\n    // WorkerMailerOptions\n    host: 'smtp.acme.com',\n    port: 587,\n    credentials: {\n      username: 'user',\n      password: 'pass',\n    },\n  },\n  {\n    // EmailOptions\n    from: 'sender@acme.com',\n    to: 'recipient@acme.com',\n    subject: 'Test',\n    text: 'Hello',\n    attachments: [\n      {\n        filename: 'test.txt',\n        content: 'SGVsbG8gV29ybGQ=', // base64-encoded string for \"Hello World\"\n        type: 'text/plain',\n      },\n    ],\n  },\n)\n```\n\n## Limitations\n\n- **Port Restrictions:** Cloudflare Workers cannot make outbound connections on port 25. You won't be able to send emails via port 25, but common ports like 587 and 465 are supported.\n- **Connection Limits:** Each Worker instance has a limit on the number of concurrent TCP connections. Make sure to properly close connections when done.\n\n## Contributing\n\n### Development Workflow\n\n> For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork and clone the repository\n2. Install dependencies:\n   ```bash\n   pnpm install\n   ```\n3. Create a new branch for your feature from `develop`:\n   ```bash\n   git checkout -b feat/your-feature-name\n   ```\n4. Make your changes and make sure all tests pass\n5. Update README.md & changelog `pnpm changeset` if needed\n6. Push your changes to your fork and create a pull request from your branch to `develop`\n\n### Testing\n\n1. Unit Tests:\n   ```bash\n   npm test\n   ```\n2. Integration Tests:\n   ```bash\n   pnpm dlx wrangler dev ./test/worker.ts\n   ```\n   Then, send a POST request to `http://127.0.0.1:8787` with the following JSON body:\n   ```json\n   {\n     \"config\": {\n       \"credentials\": {\n         \"username\": \"xxx@xx.com\",\n         \"password\": \"xxxx\"\n       },\n       \"authType\": \"plain\",\n       \"host\": \"smtp.acme.com\",\n       \"port\": 587,\n       \"secure\": false,\n       \"startTls\": true\n     },\n     \"email\": {\n       \"from\": \"xxx@xx.com\",\n       \"to\": \"yyy@yy.com\",\n       \"subject\": \"Test Email\",\n       \"text\": \"Hello World\"\n     }\n   }\n   ```\n\n### Reporting Issues\n\nWhen reporting issues, please include:\n\n- Version of worker-mailer you're using\n- A clear description of the problem\n- Steps to reproduce the issue\n- Expected vs actual behavior\n- Any relevant code snippets or error messages\n\n## License\n\nThis project is licensed under the MIT License.\n","readmeFilename":"README.md"}