{"_id":"haraka-plugin-limit","_rev":"28-d763956e0668bc8d611379227ae7ba52","name":"haraka-plugin-limit","dist-tags":{"latest":"1.3.2"},"versions":{"1.0.0":{"name":"haraka-plugin-limit","version":"1.0.0","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.0","maintainers":[{"name":"haraka","email":"haraka.mail@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"ffa724bcb6bfcc7d241b9ae1cc5563a5ee4259d7","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.0.tgz","integrity":"sha512-BeV1BMteMZ1lahCapJbFXshkBq13dltXAzPBJFgpXRcMjc30dbGHhCn7XyJTYKb7UyCvTjz7JECvL0ONC1r9WQ==","signatures":[{"sig":"MEYCIQD0Adb6041M3VV2m5Rkh98sopZB+XwRzwNjwspLUVprvwIhANVE1u3i8uAvICR5ZlInahjj62dGaG9ch46GJAJGJPat","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"limit.js","_from":".","_shasum":"ffa724bcb6bfcc7d241b9ae1cc5563a5ee4259d7","gitHead":"b6b633d54db38e9df2980976988fa1935b182c23","scripts":{"lint":"eslint *.js test/*.js","test":"./run_tests"},"_npmUser":{"name":"haraka","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"2.11.3","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"4.6.1","dependencies":{"redis":"^2.6.5","ipaddr.js":"^1.2.0","haraka-constants":"^1.0.2","haraka-plugin-redis":"*"},"devDependencies":{"eslint":"^3.14.1","nodeunit":"^0.10.2","address-rfc2821":"^1.0.1","haraka-test-fixtures":"^1.0.13"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit-1.0.0.tgz_1485535575936_0.2654182950500399","host":"packages-12-west.internal.npmjs.com"}},"1.0.1":{"name":"haraka-plugin-limit","version":"1.0.1","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.1","maintainers":[{"name":"haraka","email":"haraka.mail@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"61d303aae4e961ef06819876ec3d430711d203bb","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.1.tgz","integrity":"sha512-zQEpnoIEB+zrY8qVbBYPNRyeLOCNXLqwR0cUccke5uE7WYa9asn82Lh4+p8kAG1UwcQtt9VNnEmfaYYetdjSpw==","signatures":[{"sig":"MEYCIQDCDwuFmt66uqR0uPqNh/6scDOF/FCtJf27es0L43UE3QIhANJ84EkIQb6oDEUxH+8gm3Zh6p8VSwZwtLoZzyO+3Dzv","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"limit.js","_from":".","_shasum":"61d303aae4e961ef06819876ec3d430711d203bb","gitHead":"660be674e88d2abe6b40f1600fbeae6449d98e8a","scripts":{"lint":"eslint *.js test/*.js","test":"./run_tests"},"_npmUser":{"name":"haraka","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"4.0.5","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"6.9.4","dependencies":{"redis":"^2.6.5","ipaddr.js":"^1.2.0","haraka-constants":"^1.0.2","haraka-plugin-redis":"*"},"devDependencies":{"eslint":"^3.14.1","nodeunit":"^0.10.2","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit-1.0.1.tgz_1486425169256_0.48878879589028656","host":"packages-18-east.internal.npmjs.com"}},"1.0.2":{"name":"haraka-plugin-limit","version":"1.0.2","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.2","maintainers":[{"name":"haraka","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"1cc1927f79403b592b90ea68765c62c24a2741a7","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.2.tgz","integrity":"sha512-BFqKKPm/MtJ2kyep5e3lGQqL18Z8QIBMIscVJr0TqszctnRJEVuGT3FqCVcQobzCeD7WN9MrPLl5id2gxxx5VQ==","signatures":[{"sig":"MEQCIESYXCn2Kfo2G1nqCnaHOu65M2Ys97Tn1+ktgiRb5xNPAiBfc6vRUGb6Cl/3DmEIgCET28gwK6Gxl9KZmlz474LNQg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"limit.js","_from":".","_shasum":"1cc1927f79403b592b90ea68765c62c24a2741a7","gitHead":"63a8fa60b665b59e4426016e1e1972bc0402fe0b","scripts":{"lint":"eslint *.js test/*.js","test":"./run_tests"},"_npmUser":{"name":"tnpi","email":"matt@tnpi.net"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"2.15.11","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"6.9.1","dependencies":{"redis":"^2.6.5","ipaddr.js":"^1.2.0","haraka-constants":"^1.0.2","haraka-plugin-redis":"*"},"devDependencies":{"eslint":"^3.14.1","nodeunit":"^0.10.2","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit-1.0.2.tgz_1486929290065_0.2263780073262751","host":"packages-18-east.internal.npmjs.com"}},"1.0.4":{"name":"haraka-plugin-limit","version":"1.0.4","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.4","maintainers":[{"name":"haraka","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"bdb9d47a7cc5a85f098a917bb5681e25fce06cef","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.4.tgz","integrity":"sha512-hjQJAStoWITmMY9cXu384UmnCWArPu0LLvWZfFyZpciiDZYQ103BUijWJp+M0xe/LYfuOnmlT4kCvdlVZmXqqA==","signatures":[{"sig":"MEUCICNuUAUazI3ALdYVo6/jhABdepDETiaW/CmYJ755QIoDAiEAy7cxXTgHWUIlzkMpqz0sZYFrRTEXlieOEY85Qr5FBrA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"limit.js","_from":".","_shasum":"bdb9d47a7cc5a85f098a917bb5681e25fce06cef","gitHead":"dbfe4c318e46d2fd68e4d69fa6c2b0ffa4025568","scripts":{"lint":"eslint *.js test/*.js","test":"./run_tests"},"_npmUser":{"name":"tnpi","email":"matt@tnpi.net"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"2.15.11","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"6.9.5","dependencies":{"redis":"^2.6.5","ipaddr.js":"^1.2.0","haraka-constants":"*","haraka-plugin-redis":"*"},"devDependencies":{"eslint":"*","nodeunit":"*","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit-1.0.4.tgz_1490300743385_0.997230485547334","host":"packages-18-east.internal.npmjs.com"}},"1.0.5":{"name":"haraka-plugin-limit","version":"1.0.5","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.5","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"43c1da43bfd45c03cc7493eb1df8c9a5becf88d7","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.5.tgz","fileCount":19,"integrity":"sha512-RdG3Vme7zxGOp8YhgAPHRLo8pgWSWao4Y+5/Sjfbao0IXMqoAVqmFD97We/eaB7aIShoKEXJCsj+4UwdyxcVtA==","signatures":[{"sig":"MEUCIEPhz/ORHyaCLcoi52CzuCT0pN2Mxy1Ju7J7mDYKHpk8AiEAy+Fk/yXmmxaRb3l5aWKYf5OMzsw7K3fhOuZfZzkniOU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":52003,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiKAh2ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpxTBAAhwe3N9RgmBL+4eoVI4rxVOzsdMQEO4e+fQhj56jczphjn6WU\r\n8lx+G+Y7AKHcAQEzkpzasalUAu3WZKo7tX4GTns1QCeGf6AoXqUnlv/t02fZ\r\ny8tE3mBeMFnRBA/SI7dQGmp9MN8UMWOBpJTs4FJPsaBBsvT5ZsyCV7pCoJkv\r\nxYMZbvcERwQ52Cq3zLm8ExSv0hNbnj7gbPlHazn31y1QrIl75z18IGp72dTN\r\nKK+tqghuSjXzBg1wMc9MONLFElygnk/H5BsbXYErybxpmwSFBa4hNwdaTeDh\r\n+CvDgR0pfiKH0X+Y4LdmE6epXT8rtbr05hJb6ld22iLpVy93Fsn8O49HWPVC\r\nlp6euYCV+Ch/8FCDY8XCU2ssJOM5jB9ipC3c0p0KCxUMBl3v5DQBxDk7EN0O\r\n/Qo3Xq5HBu9YDndB0gUI3nFxf5R3doLOTDI2H6M0VCh+7ATGQF2TYqF1qcqr\r\n0HfPAr37ibi3/Ik2cQcOjkEcXqhw6HkRwer43PkztEYc/kKS5RaGKBTlMPIr\r\nxAWGhxw7eaGsyEdQMmHUaglBVQgh4GUR92CCcCI01dP7l39Kl0LgV/J5dPfr\r\nD0/byVbdpLZ2lECpQaMsMe1wawGt7JCdz81LZFuAGduMeH+TFZRahXKrkDAm\r\nGd/AVrPyB3uSXEzY3+EmrPmRo96kE+UEgl8=\r\n=ZG0e\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"57ec1738635b012f94cf4eaef08e74901c93a600","scripts":{"lint":"npx eslint *.js test/*.js","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test/*.js","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"tnpi","email":"matt@tnpi.net"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"7.21.1","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"14.17.6","dependencies":{"redis":"^3.1.1","ipaddr.js":"^2.0.0","haraka-constants":"*","haraka-plugin-redis":"*"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"*","eslint":">=6","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.0.5_1646790774001_0.9402753677127715","host":"s3://npm-registry-packages"}},"1.0.6":{"name":"haraka-plugin-limit","version":"1.0.6","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.6","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"d5ee988e949067ef0224c966b13a834c630baa69","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.6.tgz","fileCount":15,"integrity":"sha512-xnUsnZbICZKRcE64OBCSAo21icq0BWnZoEL+KLIfXT7VCjTZB7+ixCN3oanz0X1mRR3BSsM14CAjvAg6DJy/4Q==","signatures":[{"sig":"MEUCIQC8yxKa8GUAhlZo1W7VMmpzKiY79f2HwdhqjViIL1myWwIgHVCl33BNmVc869hfjNyFJc3CZCbeUc3nBvNZ2GboUaE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47497,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJijv2/ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmov5A/7BDwC1HUsCJk5IguUSRm93l6gOG11zUb90FoKyA05aWB8m29q\r\nGrJGK1Q9kjbe1oFD62vSBfd+TRrfKntk9d383xdOBHFDtniordj2FDYCeWbN\r\nZUXQtKVe9hxfCBnBzB755sv3l1y4iLoePVzkmCA0DmXhl4ipAehjMvosMFbU\r\n6F9xq9hYBhc0yWqXXyvvdqbCE0WIzaYM5tEmV9kYls75EhIVoEeyYPNu/rGI\r\n9+LAczbzlqniiJyXVyqrn/YNNruhLrd81j8dLw8uiZrjJTHeUR/j0OubO37N\r\n2psIGWRiJ3vOCpq5dDHfpbDkC6KaxyT5t7NcDQnDtTbBWCJWNXflw/DjT7e6\r\nOuYJXDpe4PIMS1KujqWdpai/rsXevRXrRzlEZ4PuexFngx2d/xJbVpxc5hJg\r\ncJH9y6MOTzfRANMQDfNZDflH+kzWm5yHONi+2FZYWY9AA0ComWoPOJze3aMo\r\nRqu/a41H76n3+fK3eoe0SqjS6it8dmr3H0Fs48gcJMvq9hvEN3a6cj/YTKJ0\r\n4RtIZ0H0YKCvYp4TIqkFZRZQjrOTwZzf4a0pHKeRinrwBl3p8x4ikBX436iz\r\ni+e/ZZqUavClODjDDqJydpGVtMaXM1DG5o2iVvef5vaR2dshzvzMJauT06D+\r\n0IWwy6ibselXOL/8+EcCN7Gx5PJN4Rb+MKk=\r\n=5inm\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"8541cc39d8aa755ad6db4d2d3fd2bae3112918a1","scripts":{"lint":"npx eslint *.js test","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"8.5.5","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"16.15.0","dependencies":{"redis":"4","ipaddr.js":"^2.0.1","haraka-constants":"*","haraka-plugin-redis":"2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9","eslint":"8","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.0.6_1653538239635_0.675361038416864","host":"s3://npm-registry-packages"}},"1.0.7":{"name":"haraka-plugin-limit","version":"1.0.7","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.0.7","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"62e1f16859603d959777e157a829d137e105488a","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.0.7.tgz","fileCount":16,"integrity":"sha512-VYD5EaHc0/5oLgIdKv3VZZgGrRnFNJSX2VUulSOFkF0dtuSScLDhYb2Z47eCWHK5jcNRIyC06VO58Wf9L7epQA==","signatures":[{"sig":"MEUCIQD7HwgWz8pghQgALJwRdLHniduNF0ZJe7/KwJgRqXfaygIgBex0y8p6zxbOqo4YeYFy1Ql2WZKPy98ly4YGmZ+Mkfk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47940,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJimpjDACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpC+g/+Nsq9Lcl4Flk1AaMt3+eyjI8UNF/I0uH4Dk4QmazqrqIGd6zb\r\nG6tuTA7YbSv6PGpXfzcVJnds/6WuqEipZY0904B+0H88EaHgInsIZprsz+1B\r\nzns+lRJMIBKJufgOMz/C5aT0Phi2CDmT/PU7tj/hce6LRcmk8gI4WkE2lUY0\r\nFNFoTKvk+1tXd2o4+0uI3aD9hn3WcRci11EKOYQsgEBSKiTFKsvzRk/S3zGy\r\nrQMQvHWqZAd1ekq6BZ9b3bDZBnQ/DEM9yi2YWCxLGXMv254MNlXKU4ymgTbP\r\nTLdl7HoPvOm4lKQy4iWU6bU0Zlij7iQe7NDb+QmjxNrHKWipC4Vo+N7BbGVX\r\nNTAfCDOR8o7na56oDHLXQzhMC/GONdPBPRHFvRB4bxbm0bfgTGeVoDA04sjH\r\n7Ugybttfx7bNLZe29x+ld5wJmPn+IGkKmKX1a4SxcuX/HhpcAdIAYVMgnPda\r\n6s4MnDSBgzgeU6eUMI/T3yMfEpJ+aVHNlEmNl77Y0qI8X9hdqL6HrWTETMzi\r\neMPnrg9+8W6aje22o0OpLGhf8P9za1GSpBbVcNRZb3iKT4jvumnIC/4vZ2p5\r\nwWpBfv2Ur44fedrGryLuoRV1poukYc/cD+LOXsQlG9jP3v65bG7JoiI5zBBy\r\n4I88y1sNAoKbkCwRWc2AngZOxzRckDv/5Tc=\r\n=0+aB\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"7d69fd53dd31cb5792496a63421f3920b2ec4570","scripts":{"lint":"npx eslint *.js test","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"8.5.5","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"16.15.0","dependencies":{"redis":"4","ipaddr.js":"^2.0.1","haraka-constants":"*","haraka-plugin-redis":"2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9","eslint":"8","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.0.7_1654298819284_0.569810541012471","host":"s3://npm-registry-packages"}},"1.1.0":{"name":"haraka-plugin-limit","version":"1.1.0","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.1.0","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"e9fea947f8e26f0f5633d17cc883a35f7b7e8e40","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.1.0.tgz","fileCount":13,"integrity":"sha512-2JYoLCEIz61hDcibfNCM1XqPboDEWz7PoEgt0zhbGsBfGyq9OtAkoCURvV2gCDoqfHAAz1oJP0Z8xMKKy9RQFw==","signatures":[{"sig":"MEUCIAQVnPuzVYE8KS1R0x9p8HeaR21fC/DqXQLpjj547lGRAiEA/ro6ZXLj8xjUM3GjXN+yp+GrJZu/lrlnoBL14DWHPdc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47476,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJi/zB5ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpUFw//V3ZAB+Yai26wSqf1JqHpUIvEyEUBi0YtQtoFn4ngUc6C+5GT\r\n0i3MVsvkHUnPLnbIS5i+4CvynA3tTKf6SVMuvqJ+L2Ypfmcd0DFP2B7OXufx\r\npz+Xaa8l34+QanMchckq3i9aO9oUWTq73gmF6t6jowNsUL5oI3Zurgr8NhHd\r\n4G3ahpk1Qt0/FqJn44UVx6+DJMSutQ2CJDQs/c+Lwws4477Zc2It9Cro58Uo\r\nEwyC4OSCkGJWsxBowaUcuKCvFKqWW3NflPHUC/2pDa4PWKpkPfk1uoU6ZM31\r\npghFqFmabNuORpYiTM7FSLcoS36VNr6Pkv3glRObaT6fTCfIYteqXxV8550P\r\nybLaJCUthTYO5bnq/Tn6HmqY4pg+947P7+qz1AILSM/FXgQr9E2il1vyx+WM\r\nizSnKUHuBfg1C+/xChHBn3y7cYsTtg2d/yK8SEbPX/yoZYh4py66IYXXIA5f\r\nI1AkewJOPcKbx5hvxjsizIIbqROwkVQX8uFx2TUWAYSnBRxvqcLrgN4ZPYVE\r\nnCE+XIXjYe3gGT+BvT5zLmSRjDjp2WJiZZ1rERp/NsOgXSDHElH/OsjjMPeK\r\nTS1Rsgi37wEkip5nIfF1soIWoxT1+bX6c1aSxziQ7WKa+W7R+U9pgaJFsGXc\r\nAFu0mUWi+8C0AzY6QPU9xU61W0cqTyfuukM=\r\n=S1F7\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"b6dde88e8fc5f0dbfa080398a80e730c1b1d82a1","scripts":{"lint":"npx eslint *.js test","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"8.11.0","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"16.16.0","dependencies":{"redis":"4","ipaddr.js":"^2.0.1","haraka-constants":"*","haraka-plugin-redis":"2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9","eslint":"8","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.1.0_1660891257050_0.786016636376021","host":"s3://npm-registry-packages"}},"1.1.1":{"name":"haraka-plugin-limit","version":"1.1.1","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.1.1","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"99b68a37eb8b7e92376cfbeff925236ebcd66cb4","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.1.1.tgz","fileCount":13,"integrity":"sha512-83uF8ulTy2vsCEYg3WOAydf/uqw1c/QUtTKh2cAbv+mnDHrtZgQe1qA/G20bxim1E4/0GC6QqFtdSr59GzZgkg==","signatures":[{"sig":"MEMCHzNX0T5WhvzJEtgagPSe/+dVWTnheAve2ZJtZDtZQJsCIDWfyvKTIDlguN4TjG9X3UrtbsvkpWboOIqdcczTspVD","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":47597,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJkQiCoACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmrc6Q/8DGKtLOA8iLOM993KY1/OTUY5AKQkcdItAOwTPaC2Vc4dZz3G\r\nMGilnoRTwnnf1ysIS2QigbIeAXApKGg8m0mKFqgk1VcVoEeYWVvC6yWT9YgB\r\nyi4BXt5Ecz5TGhtQpgk8yKGXji7yQ8iYMqkngc9QlYFUhOa3sf2sjtOKTMCm\r\n/Bp/NlkaiIMQ6nMTJa5N8ZwU3QlSTB/ztMTvJujCg7kvr4jFydjLXSfTrgbF\r\n8nvYiXneRsq+FBB1rRtrIhC3eG/XNhOESng0ZkUUozRSZMawzrLWadoBsEPf\r\ns6untAVoolAjQxac1+U6lHEwkcPKaRLlx1QzELTdR1ekC+Ien1/Beq90k5Gb\r\nqy5oFb1OXJw7gHb/8g2qpkTsQZw70ew5gESyKiaDdBoxV0cEMElaZ6a/7txA\r\nsci/nPEqjEv/BaEW/Ln6FQa0v/zZCYuZP2hhgOJDseFk55cgj3smhKrfYzof\r\nWhKFiBJXwdOXTGObUf+JZ1YCq6cQV/oCt0szxYKFEK1SgTmhmWgNv4IYEthC\r\noFiAE8IV/VDaADmjj9vNwgzalwsm2NYlWAJ6uyehVFWTuLULTW6uimgWVQar\r\n7LtmUcrJIyiA/ZYw32uLXBRLRS6+jRq+M7aZA/aju05fV7O6e7MObEwgzvQ3\r\nCyjqJTiyicQSMVHbYFZUUMF4nrL4gng1cJw=\r\n=+yhB\r\n-----END PGP SIGNATURE-----\r\n"},"gitHead":"5b57316ab5709c0e05591317075f28391eac90f6","scripts":{"lint":"npx eslint *.js test","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"8.19.4","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"16.20.0","dependencies":{"redis":"4","ipaddr.js":"^2.0.1","haraka-constants":"*","haraka-plugin-redis":"2"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"9","eslint":"8","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.1.1_1682055336254_0.7185319223268603","host":"s3://npm-registry-packages"}},"1.2.0":{"name":"haraka-plugin-limit","version":"1.2.0","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.0","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"15164be6dcf04a21990f400897fd20f4b200e24b","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.0.tgz","fileCount":13,"integrity":"sha512-fa9xata0nM6OQrYpuDOac4qv4xbwBuW/gS5+l/tWmdyYcpb/g49f5re3D8q8bcPGCWEl0OiyNsP9eeOZ8Tt+oA==","signatures":[{"sig":"MEQCIHH8oHVAX3cSuBZUlUTKdOE0VRteEK3KRythaXfjGWpPAiBN2kHjQAEHTezMHuKPSCRyH5c4TOjTFoZoGJ4ekwFQUQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48061},"gitHead":"903347c55357ff3c8fa2b67ac1801596b5e6e56f","scripts":{"lint":"npx eslint *.js test","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.2.3","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"18.19.0","dependencies":{"redis":"^4.6.12","ipaddr.js":"^2.1.0","haraka-constants":"*","haraka-plugin-redis":"^2.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.2.0","eslint":"^8.56.0","address-rfc2821":"*","eslint-plugin-haraka":"*","haraka-test-fixtures":"*"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.0_1704038752415_0.2096423614715761","host":"s3://npm-registry-packages"}},"1.2.1":{"name":"haraka-plugin-limit","version":"1.2.1","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.1","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"e3e21260ab385119e42ebe13977cd60f024eb1b3","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.1.tgz","fileCount":13,"integrity":"sha512-QgbmktWGjG21JA7/ETitcyqp1f+2DZY0MfJt7kbyPbCWVqMRQAdITiAJWscLMNB+KaLr0tKNZoSqbWrZOEo7Tg==","signatures":[{"sig":"MEYCIQDLvs+pV8bV83wBWIxqi/rMgapeZzZJ9EEX2Xkf3y5ZvQIhANHSc6dG9+vEyThtecYkYW8cPPx60aOxjoBgMlH/SM4A","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":48306},"gitHead":"ad997d45b78c1b26328630f1ce31d9771cb96011","scripts":{"lint":"npx eslint *.js test","test":"npx mocha --exit","lintfix":"npx eslint --fix *.js test","versions":"npx dependency-version-checker check"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.2.4","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"18.19.1","dependencies":{"redis":"^4.6.13","ipaddr.js":"^2.1.0","haraka-constants":"1.0.6","haraka-plugin-redis":"^2.0.6"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^10.3.0","address-rfc2821":"2.1.2","eslint-plugin-haraka":"1.0.15","haraka-test-fixtures":"1.3.3"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.1_1710977231674_0.7650062037137884","host":"s3://npm-registry-packages"}},"1.2.2":{"name":"haraka-plugin-limit","version":"1.2.2","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.2","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"3c36fb90340b2da42c91fb8b435fcbc7a05d2c69","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.2.tgz","fileCount":4,"integrity":"sha512-Y2Qq/qBK2Mk3LO5dgeabUWSZYGlxW2BR0lHorsQH3V50bNkeud6ozNrFZACzKbrEIytN8WQ7dbfhMK9M13xI+w==","signatures":[{"sig":"MEQCIEWWgAyuRmm1LY3GjEy/MaZrGzKKCnSCpvMsQb42l1I3AiBGhvO2fT/dP2BisNWsHx7Sg0DAhx/RuGpF2JSwC0hVyA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":11814},"gitHead":"2c5fdd490055b7eed69657bc1aad35a1a18e6049","scripts":{"lint":"npx eslint@^8 *.js test","test":"npx mocha@10 --exit","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint@^8 *.js test --fix","prettier":"npx prettier . --check","versions":"npx dependency-version-checker check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx dependency-version-checker update && npm run prettier:fix"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.5.0","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"18.20.2","dependencies":{"redis":"^4.6.13","ipaddr.js":"^2.2.0","haraka-constants":"^1.0.6","haraka-plugin-redis":"^2.0.7"},"_hasShrinkwrap":false,"devDependencies":{"address-rfc2821":"^2.1.2","haraka-test-fixtures":"^1.3.7","@haraka/eslint-config":"^1.1.5"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.2_1713837775119_0.9014153315074791","host":"s3://npm-registry-packages"}},"1.2.3":{"name":"haraka-plugin-limit","version":"1.2.3","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.3","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"2a8eaae0c3b27233b8586c49a4dddd82f0c4285e","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.3.tgz","fileCount":5,"integrity":"sha512-UZr7oT03XKI79+kte8757oCC1y81y5zJHEDArXe+nftWFBt47n9VmjofEDZmGWf41jbhHfv81gQgjmPrcVVGVA==","signatures":[{"sig":"MEQCIHRUYy7k2urkb23kvoBx8C7H1dpEzLDxoVv3/5v0SEbyAiBrVmFv3pLQn+d42NoNPsoMShX7UB56qpxnA2QBe0xyjg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28926},"main":"index.js","gitHead":"707d40fca2e378e48e31243f00431fbe4b8b5703","scripts":{"lint":"npx eslint@^8 *.js test","test":"npx mocha@10 --exit","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint@^8 *.js test --fix","prettier":"npx prettier . --check","versions":"npx dependency-version-checker check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx dependency-version-checker update && npm run prettier:fix"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.5.0","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"18.20.2","dependencies":{"redis":"^4.6.13","ipaddr.js":"^2.2.0","haraka-constants":"^1.0.6","haraka-plugin-redis":"^2.0.7"},"_hasShrinkwrap":false,"devDependencies":{"address-rfc2821":"^2.1.2","haraka-test-fixtures":"^1.3.7","@haraka/eslint-config":"^1.1.5"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.3_1713883067636_0.5270684804376424","host":"s3://npm-registry-packages"}},"1.2.4":{"name":"haraka-plugin-limit","version":"1.2.4","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.4","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"aeaadd0f8ecbd3a1d2dd61a03fa4debae4a765ed","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.4.tgz","fileCount":5,"integrity":"sha512-a0TBKpLtcsIqk5OL/R74YmL19EjYZAlpwiUGS48qEuI6ak5613e2FNxfydBK09DQwGGNK4qlouusAK9STZGF0Q==","signatures":[{"sig":"MEQCID8sAWjd1mPpwo2Jytt2V/AIdAYOzgmdFaPQokZEx0arAiBxlG4FMVvTt1N6lp1eZHjWfXdBvrA1QeJ1cTK4pvbs0w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28928},"main":"index.js","gitHead":"58a35ca89ca71cd843992410129b98dc91baf92a","scripts":{"lint":"npx eslint@^8 *.js test","test":"npx mocha@10 --exit","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint@^8 *.js test --fix","prettier":"npx prettier . --check","versions":"npx dependency-version-checker check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx dependency-version-checker update && npm run prettier:fix"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.7.0","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"18.20.3","dependencies":{"redis":"^4.6.14","ipaddr.js":"^2.2.0","haraka-constants":"^1.0.7","haraka-plugin-redis":"^2.0.7"},"_hasShrinkwrap":false,"devDependencies":{"address-rfc2821":"^2.1.2","haraka-test-fixtures":"^1.3.7","@haraka/eslint-config":"^1.1.5"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.4_1717955123438_0.6886319736139168","host":"s3://npm-registry-packages"}},"1.2.5":{"name":"haraka-plugin-limit","version":"1.2.5","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.5","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"11ec7be78f925c91ec4765b734963c72a17bdad8","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.5.tgz","fileCount":5,"integrity":"sha512-+BNf+F0TSR+qApHsRgl4kjzsxXDzIK5Y8I68OXL13n2toN1ODMD/MwtCuseFKY/7ITTpymsY+iPBLosGEicOyg==","signatures":[{"sig":"MEYCIQDKeHI+oPqQwlMrrQRP5p4O+uEO0lWtaieIUe1UqD7hAgIhANNYf0xW2+xz8Kc/5TQ6FNVGYCBvGdauTPcIOy8nZwky","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28976},"main":"index.js","gitHead":"3debdf6c60042499ba98b05224025921f64bba4a","scripts":{"lint":"npx eslint@^8 *.js test","test":"npx mocha@10 --exit","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint@^8 *.js test --fix","prettier":"npx prettier . --check","versions":"npx dependency-version-checker check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx dependency-version-checker update && npm run prettier:fix"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.7.0","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"18.20.3","dependencies":{"redis":"^4.6.14","ipaddr.js":"^2.2.0","haraka-constants":"^1.0.7","haraka-plugin-redis":"^2.0.7"},"_hasShrinkwrap":false,"devDependencies":{"address-rfc2821":"^2.1.2","haraka-test-fixtures":"^1.3.7","@haraka/eslint-config":"^1.1.5"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.5_1721198632540_0.7064421874429323","host":"s3://npm-registry-packages"}},"1.2.6":{"name":"haraka-plugin-limit","version":"1.2.6","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.6","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"1697116c042591ecbc811db8cfe5babd932270c5","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.6.tgz","fileCount":5,"integrity":"sha512-a06XRfItYcvnzXCljN/uEDiEBYa6iXlGiATBWoKSSmdrpXV8cSHamcD070BkMYxYJ75fsAbdG3YKVyGpaZBqJg==","signatures":[{"sig":"MEUCICrlQphcO99aCB4Wx1W0RcOd6HukmkyV1tHeDjnPfuxfAiEA3R3FIdRwG2alpkRtscBRBXO92RyHtM7lHC2rse06oRY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28889},"main":"index.js","gitHead":"ef8189eb324cfb25e70f5aa03aa18524bdf1d846","scripts":{"lint":"npx eslint@^9 *.js test","test":"npx mocha@11 --exit","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint@^9 *.js test --fix","prettier":"npx prettier . --check","versions":"npx dependency-version-checker check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx dependency-version-checker update && npm run prettier:fix"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"prettier":{"semi":false,"singleQuote":true},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.8.2","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"20.18.2","dependencies":{"redis":"^4.7.0","ipaddr.js":"^2.2.0","haraka-constants":"^1.0.7","haraka-plugin-redis":"^2.0.9"},"_hasShrinkwrap":false,"devDependencies":{"address-rfc2821":"^2.1.2","haraka-test-fixtures":"^1.3.8","@haraka/eslint-config":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.6_1738351595326_0.8234495561295601","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"haraka-plugin-limit","version":"1.2.7","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.2.7","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"203797ceeec6414f7a98a40bdacc33761f58f0f7","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.2.7.tgz","fileCount":5,"integrity":"sha512-WPUK9zVt59NPIHOehO2C+VRpKSI736gCYrO+p7U+YFSJIfX3VRhCEt1wMNKmtaetJ9JNiRyEEtCp+5oeD6XWPQ==","signatures":[{"sig":"MEUCIGDtNO4Dg2zBAj9njq1zK8k3FxHUou30lCvvYaBgcXUeAiEAyP5Cm15RmPhi/3CgokjdrHE3foGLnKhT+LRATHqsMRk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28866},"main":"index.js","gitHead":"f3c919314fb07bc302bbe8d308448b88afea0d25","scripts":{"lint":"npx eslint@^9 *.js test","test":"npx mocha@11 --exit","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint@^9 *.js test --fix","prettier":"npx prettier . --check","versions":"npx dependency-version-checker check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx dependency-version-checker update && npm run prettier:fix"},"_npmUser":{"name":"msimerson","email":"haraka.mail@gmail.com"},"prettier":{"semi":false,"singleQuote":true},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"10.8.2","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"20.19.2","dependencies":{"ipaddr.js":"^2.2.0","haraka-constants":"^1.0.7","haraka-plugin-redis":"^2.0.9"},"_hasShrinkwrap":false,"devDependencies":{"address-rfc2821":"^2.1.3","haraka-test-fixtures":"^1.3.9","@haraka/eslint-config":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.2.7_1748883537230_0.0005682717247128544","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"haraka-plugin-limit","version":"1.3.0","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.3.0","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"bff52643d2a37c5989aaaa36706ff51ccd001824","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.3.0.tgz","fileCount":5,"integrity":"sha512-xqFRkkd+PlL0/A8TAzg980JRX50eDdZ66gcEwOkStQPAt8jW9Mn8NPzwqtwyYjhhCF01xWzyMw3PEdz44fejDg==","signatures":[{"sig":"MEUCIQCthWRrgo1u5ZT40mk5UubpIabRjHwh3QpThSWw0AEOKAIgV8LpxYQNCC1jBvM4NqycqNaz2qSwJLmsIKJFpklkyhw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/haraka-plugin-limit@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32403},"main":"index.js","gitHead":"2748a97be518a7590c50ad9c7eee5a0653a6ceab","scripts":{"lint":"npx eslint *.js test","test":"node --test test/*.js","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint *.js test --fix","prettier":"npx prettier . --check","versions":"npx npm-dep-mgr check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx npm-dep-mgr update","test:coverage":"node --test --experimental-test-coverage test/*.js","test:coverage:lcov":"mkdir -p coverage && node --test --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info test/*.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a55fbd27-249e-4da5-bdfc-4cdbd10f43b9"}},"prettier":{"semi":false,"singleQuote":true},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"11.12.1","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"24.15.0","dependencies":{"ipaddr.js":"^2.4.0","haraka-constants":"^1.0.7","haraka-plugin-redis":"^2.0.11"},"_hasShrinkwrap":false,"devDependencies":{"haraka-test-fixtures":"^1.6.0","@haraka/email-address":"^3.1.4","@haraka/eslint-config":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.3.0_1779667597599_0.7255666843840753","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"haraka-plugin-limit","version":"1.3.1","keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","_id":"haraka-plugin-limit@1.3.1","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"dist":{"shasum":"85daa827b8c1c13dfbc8dd6f0249bafc7e75aa38","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.3.1.tgz","fileCount":5,"integrity":"sha512-0qu2aEugsx8Ia3w6o6E/1SFevLoXxaKP+95PBo8oLOfqfXNB6PSyPBWOkIpEUoOF8eGeGknmMk0/Tn5Rd1q14w==","signatures":[{"sig":"MEUCIQDsu4W8DrCwnEACp7F1wFnSUhgCwSDiS3PRRSctwU/3iwIgdoutZu7lLrGHXfTbaZ4Akb1Y3hT1wLchr1W+cVYvOUo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/haraka-plugin-limit@1.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":32551},"main":"index.js","gitHead":"2bce2f1c15478d65d431454d9736b2f8e9df083d","scripts":{"lint":"npx eslint *.js test","test":"node --test test/*.js","format":"npm run prettier:fix && npm run lint:fix","lint:fix":"npx eslint *.js test --fix","prettier":"npx prettier . --check","versions":"npx npm-dep-mgr check","prettier:fix":"npx prettier . --write --log-level=warn","versions:fix":"npx npm-dep-mgr update","test:coverage":"node --test --experimental-test-coverage test/*.js","test:coverage:lcov":"mkdir -p coverage && node --test --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info test/*.js"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a55fbd27-249e-4da5-bdfc-4cdbd10f43b9"}},"prettier":{"semi":false,"singleQuote":true},"repository":{"url":"git+https://github.com/haraka/haraka-plugin-limit.git","type":"git"},"_npmVersion":"11.12.1","description":"enforce various types of limits on remote MTAs","directories":{"test":"test"},"_nodeVersion":"24.15.0","dependencies":{"ipaddr.js":"^2.4.0","haraka-constants":"^1.0.7","haraka-plugin-redis":"^2.0.11"},"_hasShrinkwrap":false,"devDependencies":{"haraka-test-fixtures":"^1.6.0","@haraka/email-address":"^3.1.4","@haraka/eslint-config":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/haraka-plugin-limit_1.3.1_1779668698227_0.3765366530804106","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"haraka-plugin-limit","version":"1.3.2","description":"enforce various types of limits on remote MTAs","main":"index.js","dependencies":{"haraka-constants":"^1.0.8","haraka-plugin-redis":"^2.1.0","ipaddr.js":"^2.4.0"},"devDependencies":{"@haraka/email-address":"^3.1.5","@haraka/eslint-config":"^3.0.0","haraka-test-fixtures":"^1.7.0"},"scripts":{"prepare":"git rev-parse --git-dir >/dev/null 2>&1 && git config core.hooksPath .githooks || true","format":"npm run prettier:fix && npm run lint:fix","lint":"npx eslint *.js test","lint:fix":"npx eslint *.js test --fix","prettier":"npx prettier . --check","prettier:fix":"npx prettier . --write --log-level=warn","qlty":"qlty smells --all","test":"node --test test/*.js","test:coverage":"node --test --experimental-test-coverage","test:coverage:lcov":"mkdir -p coverage && node --test --experimental-test-coverage --test-reporter=lcov --test-reporter-destination=coverage/lcov.info","versions":"npx npm-dep-mgr check","versions:fix":"npx npm-dep-mgr update"},"repository":{"type":"git","url":"git+https://github.com/haraka/haraka-plugin-limit.git"},"keywords":["haraka","smtp","mta","limit"],"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"homepage":"https://github.com/haraka/haraka-plugin-limit#readme","prettier":{"singleQuote":true,"semi":false},"gitHead":"058164c03ba85168bfbd20c10363490d371e08c7","_id":"haraka-plugin-limit@1.3.2","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-ARD/5iUjEWfwYqzsyMEEnW1r5LFHq8jzCHll4R3lHexnsUD8/aREZR8SThzF8TTEIyRVnvkAp+OrTJQYz/0C1A==","shasum":"76f01f8dbe337fb96ddc747ab12c39b7da675031","tarball":"https://registry.npmjs.org/haraka-plugin-limit/-/haraka-plugin-limit-1.3.2.tgz","fileCount":5,"unpackedSize":35046,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/haraka-plugin-limit@1.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQChPhxV8SXYHSPjuTJQp40zOaYfS+g080oHdXkNxZ4z7wIgHt5eUa0gKnRpGiJsiPVbVFhugUcMxWW+1E8/ulVnDNM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:a55fbd27-249e-4da5-bdfc-4cdbd10f43b9"}},"directories":{},"maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/haraka-plugin-limit_1.3.2_1781044533027_0.42629117876304434"},"_hasShrinkwrap":false}},"time":{"created":"2017-01-27T16:46:16.156Z","modified":"2026-06-09T22:35:33.719Z","1.0.0":"2017-01-27T16:46:16.156Z","1.0.1":"2017-02-06T23:52:51.165Z","1.0.2":"2017-02-12T19:54:51.867Z","1.0.4":"2017-03-23T20:25:45.301Z","1.0.5":"2022-03-09T01:52:54.178Z","1.0.6":"2022-05-26T04:10:39.830Z","1.0.7":"2022-06-03T23:26:59.446Z","1.1.0":"2022-08-19T06:40:57.204Z","1.1.1":"2023-04-21T05:35:36.452Z","1.2.0":"2023-12-31T16:05:52.660Z","1.2.1":"2024-03-20T23:27:11.849Z","1.2.2":"2024-04-23T02:02:55.294Z","1.2.3":"2024-04-23T14:37:47.799Z","1.2.4":"2024-06-09T17:45:23.605Z","1.2.5":"2024-07-17T06:43:52.700Z","1.2.6":"2025-01-31T19:26:35.520Z","1.2.7":"2025-06-02T16:58:57.403Z","1.3.0":"2026-05-25T00:06:37.737Z","1.3.1":"2026-05-25T00:24:58.352Z","1.3.2":"2026-06-09T22:35:33.241Z"},"bugs":{"url":"https://github.com/haraka/haraka-plugin-limit/issues"},"author":{"name":"Matt Simerson","email":"matt@tnpi.net"},"license":"MIT","homepage":"https://github.com/haraka/haraka-plugin-limit#readme","keywords":["haraka","smtp","mta","limit"],"repository":{"type":"git","url":"git+https://github.com/haraka/haraka-plugin-limit.git"},"description":"enforce various types of limits on remote MTAs","maintainers":[{"name":"msimerson","email":"haraka.mail@gmail.com"},{"name":"tnpi","email":"matt@tnpi.net"},{"name":"msergeant","email":"helpme@gmail.com"}],"readme":"# haraka-plugin-limit\n\n[![Test][ci-img]][ci-url] [![Cover][cov-img]][cov-url] [![Qlty][qlty-img]][qlty-url]\n\nApply many types of limits to SMTP connections:\n\n    - concurrent connections\n    - max recipients\n    - max unrecognized commands\n    - max SMTP errors\n    - outbound concurrency (`[outbound]`)\n    - outbound rate limiting (`[rate_outbound]`)\n    - rate limits\n        - max connections / period\n        - max recipients / period\n            - by host\n            - by sender\n        - max null recipients / period\n\n## Installation\n\n```sh\ncd /etc/haraka\nnpm i haraka-plugin-limit\ngrep -q ^redis config/plugins || echo 'redis' >> config/plugins\necho 'limit' >> config/plugins\n```\n\n## Configure\n\nEach limit type has values that can be defined in [limit.ini](https://github.com/haraka/haraka-plugin-limit/blob/master/config/limit.ini). See the default [limit.ini](https://github.com/haraka/haraka-plugin-limit) in this packages config directory.\n\nEach limit type is disabled until `enabled=true` is set within its block in limit.ini.\n\nHaraka's config loader loads the defaults from limit.ini within this plugins installed config directory and applies any overrides found in the limit.ini within your Haraka install/config directory.\n\n### [main]\n\n<!-- prettier-ignore -->\n- tarpit_delay = seconds _(optional)_\n\nSet this to the length in seconds that you want to delay every SMTP response to a remote client that has exceeded the rate limits.\n\n## [redis]\n\nRedis is the cluster-safe storage backend for maintaining the counters necessary to impose limits reliably.\n\n- host (default: 127.0.0.1)\n- port (default: 6379)\n- db (default: 0)\n\nIf this [redis] section or any values are missing, the defaults from redis.ini are used.\n\n## concurrency\n\nWhen `[concurrency]max` is defined, it limits the maximum number of simultaneous connections per IP address. Connection attempts in excess of the limit are optionally delayed before being disconnected.\n\nThis works well in conjunction with a history / reputation database, so that one can assign very low concurrency (1) to bad or unknown senders and higher limits for reputable mail servers.\n\n### History\n\nHistory: when enabled, the `history` setting is the name of a plugin that stores IP history / reputation results. The result store must have a positive value for good connections and negative integers for poor / undesirable connections. Karma is one such plugin.\n\n## recipients\n\nWhen `[recipients]max` is defined, each connection is limited to that number of recipients. The limit is imposed against **all** recipient attempts. Attempts in excess of the limit are issued a temporary failure.\n\n## unrecognized_commands\n\nWhen `[unrecognized_commands]max` is set, a connection that exceeeds the limit is disconnected.\n\nUnrecognized commands are normally SMTP verbs invalidly issued by the client. Examples:\n\n- issuing AUTH when we didn't advertise AUTH extension\n- issuing STARTTLS when we didn't advertise STARTTLS\n- invalid SMTP verbs\n\n### Limitations\n\nThe unrecognized_command hook is used by the `tls` and `auth` plugins, so running this plugin before those would result in valid operations getting counted against that connections limits. The solution is simple: list `limit` in config/plugins after those.\n\n## errors\n\nWhen `[errors]max` is set, a connection that exceeeds the limit is disconnected. Errors that count against this limit include:\n\n- issuing commands out of turn (MAIL before EHLO, RCPT before MAIL, etc)\n- attempting MAIL on port 465/587 without AUTH\n- MAIL or RCPT addresses that fail to parse\n\n# Rate Limits\n\nBy default DENYSOFT will be returned when rate limits are exceeded. You can\nalso tarpit the connection delaying every response.\n\nMissing sections disable that particular test.\n\nThey all use a common configuration format:\n\n- \\<lookup\\> = \\<limit\\>[/time[unit]] _(optional)_\n\n'lookup' is based upon the limit being enforced and is either an IP address, rDNS name, sender address or recipient address either in full or part.\n\nThe lookup order is as follows and the first match in this order is returned and is used as the record key in Redis (except for 'default' which always uses the full lookup for that test as the record key):\n\n**IPv4/IPv6 address or rDNS hostname:**\n\n```\n   fe80:0:0:0:202:b3ff:fe1e:8329\n   fe80:0:0:0:202:b3ff:fe1e\n   fe80:0:0:0:202:b3ff\n   fe80:0:0:0:202\n   fe80:0:0:0\n   fe80:0:0\n   fe80:0\n   fe80\n   1.2.3.4\n   1.2.3\n   1.2\n   1\n   host.part.domain.com\n   part.domain.com\n   domain.com\n   com\n   default\n```\n\n**Sender or Recipient address:**\n\n```\n   user@host.sub.part.domain.com\n   host.sub.part.domain.com\n   sub.part.domain.com\n   part.domain.com\n   domain.com\n   com\n   default\n```\n\nIn all tests 'default' is used to specify a default limit if nothing else has matched.\n\n'limit' specifies the limit for this lookup. Specify 0 (zero) to disable limits on a matching lookup.\n\n'time' is optional and if missing defaults to 60 seconds. You can optionally specify the following time units (case-insensitive):\n\n- s (seconds)\n- m (minutes)\n- h (hours)\n- d (days)\n\n### [rate_conn]\n\nThis section limits the number of connections per interval from a given host or set of hosts.\n\nIP and rDNS names are looked up by this test.\n\n### [rate_rcpt_host]\n\nThis section limits the number of recipients per interval from a given host or set of hosts.\n\nIP and rDNS names are looked up by this test.\n\n### [rate_rcpt_sender]\n\nThis section limits the number of recipients per interval from a sender or sender domain.\n\nThe sender is looked up by this test.\n\n### [rate_rcpt]\n\nThis section limits the rate which a recipient or recipient domain can receive messages over an interval.\n\nEach recipient is looked up by this test.\n\n### [rate_rcpt_null]\n\nThis section limits the rate at which a recipient can receive messages from a null sender (e.g. DSN, MDN etc.) over an interval.\n\nEach recipient is looked up by this test.\n\n### [outbound]\n\nenabled=true\n; delay=30\n;example.com=10\n\nThe number after the domain is the maximum **concurrency** limit for that domain — it caps how many outbound messages may be in-flight to that domain at one time. For rate limiting (messages per time window), see `[rate_outbound]` below.\n\nDelay is the number of seconds to wait before retrying this message. Outbound concurrency is checked on every delivery attempt.\n\n### [rate_outbound]\n\nenabled=true\n;gmail.com=10/1m\n;default=500/1h\n\nLimit the number of outbound messages sent to a destination domain within a sliding time window. The key is the destination domain (matched from most-specific to least-specific subdomain). The value format is `<limit>/<qty><unit>`:\n\n- `10/1m` — 10 messages per minute\n- `100/1h` — 100 messages per hour\n- `500/1d` — 500 messages per day\n- `0` — explicitly disabled for this domain (no limit)\n\nWhen the limit is exceeded, Haraka delays delivery for the remainder of the current window (the TTL of the Redis counter key). The counter is stored in Redis under `rate_outbound:<domain>`.\n\nA special key `default` applies to any domain not otherwise configured. If neither a domain match nor a default is found, the message is delivered without a rate limit.\n\nIssue #54 (per-domain TCP connection concurrency) requires changes to the Haraka core outbound connection pool and is not configurable here. Use `max_outbound_connections` in `outbound.ini` as a global cap.\n\n## CAUTION\n\nApplying strict connection and rate limits is an effective way to reduce spam delivery. It's also an effective way to inflict a stampeding herd on your mail server. When spam/malware is delivered by MTAs that have queue retries, if you disconnect early (which the rate limits do) with a 400 series code (a sane default), the remote is likely to try again. And again. And again. And again. This can cause an obscene rise in the number of connections your mail server handles. Plan a strategy for handling that.\n\n## Strategies\n\n- Don't enforce limits early. I use karma and wait until DATA before disconnecting. By then, the score of the connection is determinate and I can return a 500 series code telling the remote not to try again.\n- enforce rate limits with your firewall instead\n\n<!-- leave these buried at the bottom of the document -->\n\n[ci-img]: https://github.com/haraka/haraka-plugin-limit/actions/workflows/ci.yml/badge.svg\n[ci-url]: https://github.com/haraka/haraka-plugin-limit/actions/workflows/ci.yml\n[cov-img]: https://codecov.io/github/haraka/haraka-plugin-limit/coverage.svg\n[cov-url]: https://codecov.io/github/haraka/haraka-plugin-limit\n[qlty-img]: https://qlty.sh/gh/haraka/projects/haraka-plugin-limit/maintainability.svg\n[qlty-url]: https://qlty.sh/gh/haraka/projects/haraka-plugin-limit\n","readmeFilename":"README.md"}