Carlos Collart wrote:
I am the dumbest person alive, and in charge of a vpopmail server,
I manage to drop database vpopmail
Not good... Before you do anything else it might be wise to stop qmail,
and all qmail-smtp processes then back up the mail store.
the system was a production one, under the domain xx_at_aduanett_dot_hn
I have a backup with the username, name, password in a CVS format
Just one domain, or many?
how could i re-poblate the mysql directly?
insert values(xxx,hash(xxx),xx,xx) into 'aduanett.hn
<http://aduanett.hn>'.vpopmail or crypt?
This may be the easiest method available. You will have to write a
Perl, php or whatever program to populate the database. The password
hash method depends on your ./configure options. It is pretty easy
unless you have to track down hashed directories.
Another way is to save the mail and re-create the mail accounts... If
you have hashed directories, it is unlikely that the same accounts will
end up in the same hash directories, so this will not work.
Stop mail delivery // The mail store will be inconsistent during
this process, and it is already broken.
Backup the mail store to disk or tape, so you have a place to fallback
to if this process fails.
cd ~vpopmail/domains // Move to the domain storage directory
mv targetdomain.com targetdomain.com.old // save the mail
vdeldomain targetdomain.com // clean out all records of domain
vadddomain targetdomain.com // recreate a new empty domain
vadduser - all users from your list // restore the users
compare the structure of targetdomain.com and targetdomain.com.old
if it exists in targetdomain.com but not targetdomain.com.old you may
want to delete the user, or find out why it is missing.
if it exists in targetdomain.com.old but not in targetdomain.com you may
need to vadduser it.
Once you have reconciled the domain directories:
rm -r targetdomain.com // Delete the new directory tree
mv targetdomain.com.old targetdomain.com // put the old mail back
repeat the steps after "cd ~vpopmail/domains" for each affected domain
restart mail delivery.