accounts = []
domains.each do |domain|
- domain_path = File.join(@domain_root, domain)
- usernames = Filesystem.get_subdirs(domain_path)
+ domain_path = get_domain_path(domain)
- usernames.each do |username|
- accounts << "#{username}@#{domain}"
+ if File.directory?(domain_path)
+ # If domain_path isn't a directory, maybe the
+ # domain folder doesn't exist? In that case, I
+ # guess we want to report zero accounts.
+ usernames = Filesystem.get_subdirs(domain_path)
+
+ usernames.each do |username|
+ accounts << "#{username}@#{domain}"
+ end
end
end
return accounts
end
+
+ def get_domain_path(domain)
+ # Return the filesystem path for the given domain.
+ # That is, the directory where its mail is stored.
+ domain_path = File.join(@domain_root, domain)
+ return domain_path
+ end
+
+
+ def get_account_path(account)
+ # Return the filesystem path of this account's mailbox.
+ account_parts = account.split('@')
+ user_part = account_parts[0]
+ domain_part = account_parts[1]
+
+ domain_path = get_domain_path(domain_part)
+ account_path = File.join(domain_path, user_part)
+ end
+
end