Adapted for mohag.
--- 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