Adapted for mohag. mohag tip
authorroot@lnx-rz003.mohagnet.mohag.de
Wed, 08 Apr 2009 14:00:43 +0200
branchmohag
changeset 21 9077c793799e
parent 20 fee1ab08289e
Adapted for mohag.
Makefile
update-mailboxes
--- 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/
--- 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