<toc></toc> 1. Dump the accounts from MySQL
mysqldump -u root -p vpopmail vpopmail > vpopmail.mydump
2. Convert mysql dump to LDIF with reformatting
awk -F\' 'BEGIN {OFS="\n";} NF==15 {print "dn: cn="$8",ou="$4",ou=qmail,o=company","cn: "$8,"objectClass: top","objectClass: person","objectClass: qmailUser","mail: "$2"@"$4,"sn: "$8,"uid: "$2"@"$4,"mailMessageStore: "$10,"userPassword: {CRYPT}"$6,""}' vpopmail.mydump > qmail-ldap.ldif
<em>Accounts which contain an apostrophe will be missing (O'Reilly) because that is what we're using for delimeters.</em> Find offenders with:
awk -F\' 'NF > 15' vpopmail.mydump
3. Manually add a section to the top of the LDIF file to create each domain OU. You should also clean up any records which are obviously invalid.
dn: ou=domain.com,ou=qmail,o=company objectClass: top objectClass: organizationalUnit ou: domain.com description: domain.com
4. Import the LDIF file into the LDAP directory
ldapadd -vx -h localhost -D "cn=manager,o=company" -W -f qmail-ldap.ldif