# HG changeset patch # User root@lnx-rz003.mohagnet.mohag.de # Date 1239192043 -7200 # Node ID 9077c793799eb77183f3bb6b779aaf869d6cc97b # Parent fee1ab08289edf75b7482605f0fb56365973ea9c Adapted for mohag. diff -r fee1ab08289e -r 9077c793799e Makefile --- a/Makefile Wed Apr 08 14:00:20 2009 +0200 +++ b/Makefile Wed Apr 08 14:00:43 2009 +0200 @@ -4,4 +4,5 @@ all: install: + ./update-mailboxes install install -m0755 ${SCRIPT} /usr/local/sbin/ diff -r fee1ab08289e -r 9077c793799e update-mailboxes --- a/update-mailboxes Wed Apr 08 14:00:20 2009 +0200 +++ b/update-mailboxes Wed Apr 08 14:00:43 2009 +0200 @@ -18,9 +18,17 @@ my $SERVER = "localhost"; my $BLACKLIST = "/etc/mail/update-mailboxes.blacklist"; my $OULIST = "/etc/mail/update-mailboxes.oulist"; -my $FILTER = "(&(objectClass=sambaSamAccount))"; -my $MBOX_ATTR = "uid"; -my $DEFAULT_DOMAIN = "dtele.de"; +my $FILTER = "(&(objectClass=user)(mail=*)(!(userAccountControl:1.2.840.113556.1.4.803:=2)))"; +my $MBOX_ATTR = "samAccountName"; +my $DEFAULT_DOMAIN = ""; + +# quick'n'dirty +if (@ARGV and $ARGV[0] eq "install") { + foreach (grep {!-f} $BLACKLIST, $OULIST, $PRIVATE) { + open(X, ">>$_") or die "Can't touch $_: $!\n"; + } + exit 0; +} my $opt_delete = 0; my $opt_protocol = undef; @@ -124,6 +132,11 @@ print "$folder: "; + if ($mbox =~ /[^a-z\/\d_.-]/) { + warn "$mbox: invalid name\n"; + next; + } + if ($imap->exists($folder)) { print "exists\n"; $mbox{$mbox} = $folder; @@ -190,6 +203,7 @@ } sub get_credentials($$) { + # key : user : pw my ($file, $pattern) = @_; open(my $fh, $file) or die "Can't open $file: $!\n"; my (undef, $u, $p) = (split /\s*:\s*/, (grep /^$pattern\s*:/, <$fh>)[0]); @@ -197,6 +211,7 @@ return ($u, $p); } + __END__ =head1 NAME