{
    require esmith::AccountsDB;
    require esmith::DomainsDB;
    require esmith::HostsDB;
    
    my %Accounts = esmith::AccountsDB->as_hash;
    my %Domains  = esmith::DomainsDB->as_hash;
    my %Hosts    = esmith::HostsDB->as_hash;

    foreach my $account ( keys %Accounts )
    {
	next unless ( exists $Accounts{$account}{Visible} 
	     and $Accounts{$account}{Visible} eq "internal" );

        $OUT .= "$account\n";
        $OUT .= "$account\@$DomainName\n";

	foreach my $domain ( keys %Domains )
	{
	    next unless $Domains{$domain}{type} eq "domain";
	    $OUT .= "$account\@$domain\n";
	}

	foreach my $host ( keys %Hosts )
	{
	    next unless $Hosts{$host}{type} eq "host";
	    $OUT .= "$account\@$host\n";
	}
    }
}
