|
Neohapsis is currently accepting applications for employment. For more information, please visit our website www.neohapsis.com or email hr@neohapsis.com |
From: Eugene V. Boontseff (eugene
home.wdc.spb.ru)
Date: Mon Nov 23 2009 - 13:12:51 CST
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
mikie mike wrote:
>
> 1. Check LDAP database if there is such an user / alias in Exchange AD
> If yes, mail should be transported to Exchange
>
> 2. Check if there is virtual user / alias in virtual table
> If yes, mail goes to local maildir.
>
> I don't know how to handle transports with LDAP. Is it possible to
> transport user to Exchange if there is a record for her in LDAP?
> Or should I do it other way?
>
You can use perl script. such as:
#!/usr/bin/perl
# ad2recipientmaps.pl
# (C) Eugene V. Boontseff
use Net::LDAP;
use Text::Iconv;
use MIME::Base64;
$server = "AD.domain.com"; #AD server
$port = "3268"; #AD ldap port
$basedn = "dc=domain,dc=com"; # base dn
$scope = "sub";
$binddn = "DOMAIN\\user"; # ms user
$passwd = "password"; # password
$filter = "(|(smtp=*)(SMTP=*))"; # filter
$ok = "OK";
$eol = "\n ";
$c = new Net::LDAP($server, port => $port) || die "Don't connect to
server $server: $
\n";
$c->bind($binddn, password => $passwd) || die "Don't login: $
\n";
$mesg = $c->search(base => $basedn, scope => $scope, filter => $filter)
or die "Don't search. code: #".$mesg->code();
my $max = $mesg->count;
for($i = 0 ; $i < $max ; $i++) {
my $entry = $mesg->entry($i);
foreach my $attr ($entry->attributes) {
$attrref=$entry->get_value($attr,asref => TRUE);
for ($j = 0 ; $j < scalar(
$attrref) ; $j++) {
if ($attr =~ /smtp/i) {
$print_attr =
$attrref[$j];
printf("%s\t%s%s",$print_attr,$ok,$eol);
}
}
}
}
$c->unbind();
exit 0;
./ad2recipientmaps.pl > relay_recipient_maps
postmap hash:relay_recipient_maps
cut on main.cf
...
transport_maps = hash:$config_directory/transport
relay_domains = domain.com
relay_recipient_maps = hash:$config_directory/relay_recipient_maps
...
cut off main.cf
cut on transport
...
domain.com smtp:exchange_server
...
cut on transport
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]