If you have any other ideas, create an Issue in this github project.
Roundcube Plugin to create an Address Book from list of users in the SQL View. Currently Natively Supporting:
- iRedMail [Aliases Supported]
- [anything you create a My/PgSQL View for (Check out SQL/README.md)]
By Default The DomainBook
is enabled for all users. All other books will have to be configured prior to use.
Compose new email:
Address Book view:
This software adheres to the MIT License, please see LICENSE File!
-
To Install, extract this archive and copy the folder
sql_global_addressbooks
intoroundcube/plugins/
-
This plugin queries contacts from SQL VIEW (or table)
global_addressbook
, please check fileSQL/README.md
to understand how to create a required VIEW (or table). Available SQL templates:-
For MySQL/MariaDB:
iredmail+alias.my.sql
: template for iRedMail server. it will list both mail user and mail alias accounts in address book.iredmail.my.sql
: template for iRedMail server, it lists mail users in address book.
-
For PostgreSQL:
iredmail.pg.sql
: template for iRedMail server. Note: it requires some manual setup, please open this file and read the comment first.
-
-
under
plugins/sql_global_addressbooks/
, copyconfig.inc.php.dist
toconfig.inc.php
. It will enable per-domain address book with default settings. If you need more control, please open it, read the comments, and adjust the settings to match your needs. -
Enable this plugin in Roundcube config file
roundcubemail/config/config.inc.php
. For example:
$config['plugins'] = array(..., 'sql_global_addressbooks');
This Book Type shows all users which are in the same Domain Realm as the Authenticated User. Supports Whitelist and Blacklist to select which users are given this Book.
This Book Type shows all users, with the exception of the blacklisted ones.
Supports Whitelist and Blacklist of which domains to include in book, for example if you'd like to hide a domain from the Global Book then just add it to the _sql_gb_data_hidden
array.
Supports Whitelist and Blacklist to select which users are given this book also.
This Book Type shows a specific set of domains, to all users except those which are part of any of the domains in the set. This is the most complicated Book Type in the set, and probably won't get used, I do use it personally which is why its included.
This plugin is considered secure to use for the following reasons:
- Security through Obscurity - The plugin uses a My/PgSQL View instead of directly accessing the SQL Schema+Table because it means it is given no access to such things as User Hashes [Passwords] but it also means that the whole Plugin remains the same and the View Defines how it interacts with the Existing DB.
- Read Only MySQL View - The View containing Functions and SubQueries [Alias Support] means that the View is Read Only which is another layer of security between your Data and any Potential Damaging Code.
- It uses the Internal Roundcube Address Book classes so if any bugs exist in them they will be patched accordingly, hopefully without breaking the functionality of this plugin.
- This plugin features no accessible endpoints, it can be Modelled as a processing node, as it does not address the client directly. Ever. All the communication between DB -> Itself -> Client is managed and administered by the RoundCube Plugin Hooks+API.
If you do not trust me, just look through the source code, it should be pretty straight forward and you can then rest assured!
The Configuration File has been annotated and should prove easy to understand.
Feel free to contact me directly at postmaster _at_ webdevguru.co.uk
if you
have any queries or requests!