At least on my box, as long as you give slocal -user when it's invoked,
Strike that, reverse it. As long as -user *is not supplied*, presumably
due to these lines of localmail:
443 /* last resort - deliver to standard mail spool */
444 #ifdef SLOCAL_MBOX
445 return usr_file
You might try telling slocal to be verbose, in which case it might
say what was going wrong, or alternatively run under a debugger and
see why status is being set to -1...
This has been suggested before, but it's not the most end-user friendly route.
# slocal -debug
vec[0]: default
vec[1]: -
From strace
write(1, !/var/spool/mail/belg4mit\n, 26) = 26
open(/var/spool/mail/belg4mit, O_RDWR|O_CREAT|O_NONBLOCK, 0600) = 5
write(1, !/var/spool/mail/belg4mit.lock\n, 31) = 31
uname({sys=Linux, node=vm10.myvpshost.com, ...}) = 0
umask(022) = 077