ActiveLdap でメールサーバのアカウントを取得・表示してみる。
以前は OpenLDAP のライブラリが無いといけなかった気がするが、
改めて試してみたところ net-ldap が pure ruby 実装だったので
Windows でもちゃんと動いた! 嬉しい…
sample_activeldap.rb
# coding: utf-8
#
require 'active_ldap'
ActiveLdap::Base.setup_connection :host => 'ldap.example.co.jp', :base => 'o=Example Inc., c=JP'
class User < ActiveLdap::Base
ldap_mapping :dn_attribute => "cn", :prefix => "ou=example.ad.jp"
end
account = []
mailing_list = []
User.find(:all).each do |user|
if user.mailalternateaddress && user.mailalternateaddress.include?(user.mail.sub(/@/, '-default@'))
mailing_list << user
else
account << user
end
end
puts "account: #{account.size}"
account.each do |value|
puts "#{value.mail} / #{value.name} #{value.mailforwardingaddress ? '... => ' + [value.mailforwardingaddress].flatten.size.to_s : ''}"
end
puts "\nmailing_list: #{mailing_list.size}"
mailing_list.each do |value|
puts "#{value.mail} / #{value.name}"
end
exit 0
ウチの会社のサーバ固有の attribute もあるのでアレですが、まぁ、参考までという事で。