While this is probably ok in normal or single domain configurations or is what most people typically need, I'd suggest adding a configuration option that instructs the plugin on what to ask the db for.
You have:
this.is_user_valid(rcpt.user, function (isValid) {
Which only gathers the user (local part) of the receipient. In my case, supporting multiple domains, I needed it to match the entire email address and did the following:
this.is_user_valid(rcpt.user.concat('@').concat(rcpt.host), function (isValid) {
There is probably a better way to do this than concatenating but I was just doing the quickest thing possible to get it working.
I'd suggest the configuration variable be named "use_localpart_only" and when false it uses the entirety of the email address instead of just the local part.