Notes about open source software, computers, other stuff.

Script that converts a Squirrelmail address book to vcf format

Today I installed Roundcube as a replacement for my Squirrelmail webmail setup. All went well, but Roundcube only accepts adresses in vCard format (.vcf-format), whereas Squirrelmail only exports in CSV format. To solve this I wrote the following script that converts a Squirrelmail address book to vCard format. The results are sent to stdout, so run it like this: abook2vcf.awk user@example.com.abook > my_addresses.vcf.
On my Debian install the Squirrelmail address books (files ending in .abook are located in /var/lib/squirrelmail/data.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/awk
#
# This script converts a Squirrelmail address book to 
# vcards for import in Roundcube for example.
BEGIN{
    FS="|"
}
 
{
    full_name  = $1;
    first_name = $2;
    last_name  = $3;
    email      = $4;
 
    print("BEGIN:VCARD");
    print("VERSION:3.0");
    printf("FN:%s\n", full_name);
    printf("N:%s;%s;;;\n", last_name, first_name);
    printf("EMAIL;type=INTERNET;type=HOME;type=pref:%s\n", email);
    print("END:VCARD");
}

2 Comments

  1. unonymous

    Huge thanks for your script. I couldn’t get it to work with awk, however. So I a2p on it;
    # a2p abook2vcf.awk > abook2vcf.pl
    to convert it to a perl script. Then ran per your instructions with the perl modifier;

    # perl abook2vcf.pl email.abook > email.vcf

    Worked like a charm. Thanks again!

  2. Andre

    works perfectly!
    thanks

Leave a Reply

Your email address will not be published. Required fields are marked *

© 2020 Lennart's weblog

Theme by Anders NorenUp ↑