Updated address resolving

This commit is contained in:
Andris Reinman 2017-12-01 15:21:44 +02:00
parent 55d7b87915
commit 5b89511c35
7 changed files with 23 additions and 18 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
define({ "name": "wildduck", "version": "1.0.0", "description": "WildDuck API docs. Under construction, see old docs here: https://github.com/nodemailer/wildduck/blob/master/docs/api.md", "title": "WildDuck API", "url": "http://localhost:8080", "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-12-01T13:04:16.194Z", "url": "http://apidocjs.com", "version": "0.17.6" } });
define({ "name": "wildduck", "version": "1.0.0", "description": "WildDuck API docs. Under construction, see old docs here: https://github.com/nodemailer/wildduck/blob/master/docs/api.md", "title": "WildDuck API", "url": "http://localhost:8080", "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-12-01T13:21:34.058Z", "url": "http://apidocjs.com", "version": "0.17.6" } });

View file

@ -1 +1 @@
{ "name": "wildduck", "version": "1.0.0", "description": "WildDuck API docs. Under construction, see old docs here: https://github.com/nodemailer/wildduck/blob/master/docs/api.md", "title": "WildDuck API", "url": "http://localhost:8080", "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-12-01T13:04:16.194Z", "url": "http://apidocjs.com", "version": "0.17.6" } }
{ "name": "wildduck", "version": "1.0.0", "description": "WildDuck API docs. Under construction, see old docs here: https://github.com/nodemailer/wildduck/blob/master/docs/api.md", "title": "WildDuck API", "url": "http://localhost:8080", "sampleUrl": false, "defaultVersion": "0.0.0", "apidoc": "0.3.0", "generator": { "name": "apidoc", "time": "2017-12-01T13:21:34.058Z", "url": "http://apidocjs.com", "version": "0.17.6" } }

View file

@ -223,9 +223,12 @@ module.exports = (db, server) => {
.lowercase()
.length(24)
.required(),
address: Joi.string()
address: [
Joi.string()
.email()
.required(),
Joi.string().regex(/^\w+@\*$/, 'special address')
],
main: Joi.boolean().truthy(['Y', 'true', 'yes', 1]),
allowWildcard: Joi.boolean().truthy(['Y', 'true', 'yes', 1])
});

View file

@ -184,7 +184,7 @@ module.exports = (db, server) => {
* @api {post} /domainaliases/addresses Create new Domain Alias
* @apiName PostDomainAlias
* @apiGroup DomainAliases
* @apiDescription Add a new Alias for a Domain
* @apiDescription Add a new Alias for a Domain. This allows to accept mail on username@domain and username@alias
* @apiHeader {String} X-Access-Token Optional access token if authentication is enabled
* @apiHeaderExample {json} Header-Example:
* {
@ -225,10 +225,12 @@ module.exports = (db, server) => {
const schema = Joi.object().keys({
alias: Joi.string()
.hostname()
.max(255)
//.hostname()
.required(),
domain: Joi.string()
.hostname()
.max(255)
//.hostname()
.required()
});

View file

@ -87,7 +87,7 @@ class UserHandler {
// try an alias
let checkAliases = done => {
this.users.collection('domainalias').findOne({ alias: address.substr(address.indexOf('@') + 1) }, (err, aliasData) => {
this.users.collection('domainaliases').findOne({ alias: address.substr(address.indexOf('@') + 1) }, (err, aliasData) => {
if (err) {
return done(err);
}
@ -134,12 +134,12 @@ class UserHandler {
}
if (addressData) {
next(null, { _id: addressData.user });
return next(null, { _id: addressData.user });
}
// try to find a catch-all user
this.users.collection('addresses').findOne(
{
addrview: address.substr(0, address.indexOf('@')).replace(/\./g, '') + +'@*'
addrview: address.substr(0, address.indexOf('@')).replace(/\./g, '') + '@*'
},
{
fields: {
@ -155,7 +155,7 @@ class UserHandler {
return callback(null, false);
}
next(null, { _id: addressData.user });
return next(null, { _id: addressData.user });
}
);
}