Files
oav/tmp/openldap/mailboxes.pm
2023-03-20 12:18:38 +01:00

122 lines
2.0 KiB
Perl

# $Id: mailboxes.pm,v 1.1 2007/02/19 22:33:18 kiwi Exp $
#
package mailboxes;
use Mail::RFC822::Address qw(valid);
use POSIX;
use strict;
sub new
{
my $class = shift;
my $this = {};
bless $this, $class;
print STDERR "Starting mailboxes\n";
return $this;
}
sub init
{
return 0;
}
sub search
{
my $this = shift;
my @match_entries = ();
my $todo;
my($row, $mailaddr, $quotedmail, $res, $sth, $path, $searchmail);
my($base, $scope, $deref, $sizeLim, $timeLim, $filter, $attrOnly, @attrs ) = @_;
# Checking about what looking for
# mail= foo -> postfix / pll VDA delivery
# uid= foo -> pop3/imap that supports @ -> %
$todo = $filter;
$todo =~ s/^\((.*)=.*\)$/\1/g;
#print STDERR "==> Want : $todo \n";
$mailaddr = $filter;
if ($todo =~ "uid") {
# replacing % -> @
print STDERR "We get a request for UID\n";
$mailaddr =~ s/\%/\@/g;
}
print STDERR "Looking for : $mailaddr \n";
if (not ($mailaddr =~ s/^\(uid=(.*)\)$/\1/g)) {
if(not ($mailaddr =~ s/^\(mail=(.*)\)$/\1/g)) {
return(0, ()); # Filtre non authorise.
}
}
if (not valid("<".$mailaddr.">")) {
return(0, ()); # Mail non valide RFC822
}
# We get data, then format output... :)
print STDERR "We get some results...\n";
my $entry =
"dn : uid=$mailaddr,ou=mailboxes,dc=kazar,dc=net\n\t".
"objectClass : top\n\t".
"objectClass : kazarPerson\n\t";
$entry .= "uid : $mailaddr\n\t";
$entry .= "cn : Nom Prenom\n\t";
$entry .= "description : Sample description\n\t";
$entry .= "uidNumber : 10\n\t";
$entry .= "gidNumber : 10\n\t";
$entry .= "userPassword : Password\n\t";
$entry .= "homeDirectory : /home/test\n\t";
$entry .= "mailQuota : 50\n\t";
$entry .= "CouriermailQuota : 50S\n\t";
print STDERR "Sending -> $entry\n";
push @match_entries, $entry;
return(0, @match_entries);
}
sub compare
{
return 0;
}
sub modify
{
return 0;
}
sub add
{
return 0;
}
sub modrdn
{
return 0;
}
sub delete
{
return 0;
}
sub config
{
return 0;
}
sub bind
{
return 0;
}
1;