Using a php script to convert squirrelmail .abook files to zimbra cvs

While I was in the process of migrating about 10 users from squirrelmail to zimbra I found that using imapsync did a great job of moving the mail, but I was left with the users' addressbooks.

Found some information on the wiki with a python script that could do the conversion, but it didnt work for me. So I made a rough script in php which (calling it on the server squirrelmail runs on) sends me a cvs file containing an importable file of contacts for zimbra.

Of course you will need to edit the code to enter the dir where squirrelmail's .abook files are kept, and it isn't a very secure thing to do but it worked for me. And as I said earlier... its pretty rough ;)


if (empty($userid)) {
 echo "<form action='/abook.php' method='put'>User";
 echo "<input type='text' name='userid' size='7'></form>";
if (!empty($userid)) {
 header("Content-type: application/force-download");
 header("Content-disposition: attachment; filename=$userid.cvs");
 header("Expires: 0");
 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
 header("Pragma: nocache");
 print("\"Birthday\",\"Business City\",\"Business Country\",\"Business Fax\",\"Business Phone\",\"Business Phone 2\",\"Business Postal Code\",\"Business State\",\"Business Street\",\"Business Street 2\",\"Business Street 3\",\"Callback\",\"Car Phone\",\"Company\",\"Company Main Phone\",\"Department\",\"E-mail Address\",\"E-mail Display Name\",\"E-mail Type\",\"E-mail 2 Address\",\"E-mail 2 Display Name\",\"E-mail 2 Type\",\"E-mail 3 Address\",\"E-mail 3 Display Name\",\"E-mail 3 Type\",\"First Name\",\"Home City\",\"Home Country\",\"Home Fax\",\"Home Phone\",\"Home Phone 2\",\"Home Postal Code\",\"Home State\",\"Home Street\",\"Home Street 2\",\"Home Street 3\",\"Initials\",\"Job Title\",\"Last Name\",\"Middle Name\",\"Mobile Phone\",\"Notes\",\"Other City\",\"Other Country\",\"Other Fax\",\"Other Phone\",\"Other Postal Code\",\"Other State\",\"Other Street\",\"Other Street 2\",\"Other Street 3\",\"Pager\",\"Suffix\",\"Web Page\"\t");
 $readfile = file("/var/squirrelmail/prefs/".$userid.".abook");
 for ($k=0; $k<=count($readfile)-1; $k++) {
  $fields = split("\|",$readfile[$k]);

i named it 'abook.php' and called it like http://server/abook.php?userid=username wich in turn returns a download username.cvs....

Hope someone has use for it, and its posted in the proper place.

Moved here from the thread i made on the forum:

Verified Against: unknown Date Created: 9/21/2006
Article ID: Date Modified: 2015-03-24

Try Zimbra

Try Zimbra Collaboration with a 60-day free trial.
Get it now »

Want to get involved?

You can contribute in the Community, Wiki, Code, or development of Zimlets.
Find out more. »

Looking for a Video?

Visit our YouTube channel to get the latest webinars, technology news, product overviews, and so much more.
Go to the YouTube channel »

Jump to: navigation, search