===== Information ===== The module rcmail is currently broken. ==== Introduction ==== * Basic: Integration of the roundcube webmail client in drupal * Pro / Contra iframe: The iframe solution is not very nice, but roundcube is just a complex application. Maybe it's also better for maintaining updates. Also following the unix philosophy: a task should have it's own application. * Advantages: rcmail is an module to use the nice-looking ajax webmail client roundcube in drupal. Users can leave their mail account information in drupals account settings to make use of a single-sign-on. The passwords stored crypted in drupals database*. Some scripts in roundcube were modified to use contacts managed with civicrm. Users can query, edit and insert new contacts in the contact pool of civicrm. * Future: Uses can see sent emails as activities in civicrm. * *Security: The password of the users IMAP account stored in the database using php mcrypt and a key you can set in the rcmail.module. So even a database administrator is not able to read users password as plain-text. To login the IMAP account, the password will be decrypted using mcrypt and the key in runtime. **Paranoia**: If an evil hacker gain access of booth, drupals database **//and//** your key (wich is stored in the script), the hacker is able to decrypt the passwords. * Project at drupal http://drupal.org/node/58466 === Notes 4.7.x < === rcmail was updated to work with drupal-4.7. But there are two outstanding tasks: * currently no patch for civicrm-module, if you need this don't hesitate to [[http://www.polyformal.de/contact|contact]] me === Notes Drupal 5.x === == rcmail.install == The automatic installation of tables needed by roundcubemail could not be done by a procedure of hook_install. Because drupal strips all protection characters like ' or ` . Because roundcubemail uses fieldnames like 'from' or 'reply-to' in the identities table f.e. Without protecting characters this breakes the MySQL syntax. ==== roundcube ==== * Homepage http://www.roundcube.net/ * forum http://roundcubeforum.net/ * [[http://www.fsf.org/licensing/licenses/gpl.txt|GNU General Public License]] * Spellcheck http://roundcubeforum.net/index.php?topic=210.0 ==== Demo ==== * http://dev.polyformal.de/drupal/ * create new account * login and edit IMAP setting in ‘my account’ ==== Support / Development ==== Please use the rcmail project site at [[http://drupal.org/node/58466|drupal]]. If you need fast response or modification for your own needs((for example integration of your favorite CRM with addresses and activity tracking)) please contact me at [[http://www.polyformal.de/contact|polyformal]] to open a business track. ===== Installation ===== === Requirements === please have a look at [[rcmail#versions|Versions]] before. * [[http://drupal.org/download|drupal]] (of course ;) * [[http://sourceforge.net/project/showfiles.php?group_id=139281|Roundcube Webmail]] * [[http://drupal.org/project/rcmail|rcmail]] * make shure PHP compiled with mcrypt (f.e. '---with-mcrypt' ). You can check this with phpinfo(); rcmail.module comes with 2 different patches for 2 flavors of using adressbooks. The one with the great advantage to use the addressbook from civicrm, wich needs the patch patch_ab_civicrm.txt . The other one with the standard addressbook from roundcubemail needs patch_ab_rc.txt --- //[[polyformal@gmail.com|Superuser]] 2007/03/24 12:50// civicrm is not supported yet, because it seems like that nobody needs it. === Configuration === * goto [drupal]/sites/all/modules/rcmail/ * unpack roundcubemail to ./ so that you have [drupal]/sites/all/modules/rcmail/roundcubemail * assuming now that ./patch_ab_[flavor].txt and ./roundcubemail/ (create symbolic links if necessary) * apply patch patch -p0 -u < patch_ab_[flavor].txt * edit roundcubemail/conf/ (for further details read roundcubemail/README and INSTALL) * db.inc.php * set to drupals database * add the prefix //rcmail_// to //all// mysql tables, like the following example: before // you can define specific table names used to store webmail data $rcmail_config['db_table_users'] = 'users'; after // you can define specific table names used to store webmail data $rcmail_config['db_table_users'] = 'rcmail_users'; * main.inc.php set your smtp server * modify roundcubemail/SQL/mysql5.initial.sql There is also an file called //roundcubemail/SQL/mysql.initial.sql// for mysql 4.x. It should work in the same way. * add the table prefix //rcmail_// to all CREATE TABLE statements, like the following example: before CREATE TABLE `contacts` after CREATE TABLE `rcmail_contacts` when using vi/vim you can use can use: :%s/CREATE TABLE `/CREATE TABLE `rcmail_/ * apply roundcubemail/SQL/mysql.initial.sql to drupal's database * Modify roundcubemail/.htaccess if neccesary In the file rcmail.module you can change the $key variable in the _encrypt() and _decrypt() function to any random characters. Booth $key must have the **same** content. === Finish and Check it out === * settings in druapl * enable the module / permissions * edit IMAP setting in 'my account' * select 'roundcubemail' from the menu ==== Versions ==== This is a matrix witch patch matches the right roundcube version. ^patch ^roundcube ^drupal ^ |patch_ab_rc.txt 1.4 |0.1beta2 | 4.7.3| |patch_ab_rc.txt 1.5 |0.1beta2 | 5| ===== Modifications ===== This gives an overview how it was modified, for everybody who is interested in. * iframe problem: 'Compose' overrides the iframe (Zeile 845) * database to drupals database * SQL/mysql.initial.sql set tablesnames with prefix rcmail_ * adressbook civicrm support * program/steps/addressbook/* * program/steps/mail/compose.inc * see patch make patch with addressbook from civicrm diff -ruN roundcubemail/ drupal/modules/rcmail/roundcubemail/ -x .svn -x config > patch_ab_civicrm.txt make patch with rcmail standard addressbook diff -ruN roundcubemail/ drupal/modules/rcmail/roundcubemail/ -x .svn -x config -x program > patch_ab_rc.txt ===== TODO ===== ^Task ^Status ^Priority ^Comments ^ |Basic Integration| Complete| 1| Javascript issue| |Security |Complete | 1 |handled via drupals session_db | |Crypted Passwords |Complete | 1 |handled via php mcrypt | |CiviCRM integration |In Progress |2 |difficult if, there were different databases, works when same db as drupal (table prefix civicrm_| | # adressbook |In Progress |2| Query, Update & New works basicly \\ solve firstname-surname-display_name issue \\ solve 'edit contact'->email \\ delete contacts(?) | | # activities | |3|log sent email | | # permissions | |3|check drupals settings for civicrm, also perissions for groups | |drupal-4.7.0 tag |Complete |2 |issues with grab and modify formdata in case:update hook_user \\ patch for civicrm adressbook| |code cleanup | |2| | |iframe dimensions | |3|adminster task| |signature fom user | |3| | Priority * 1 : essential * 2 : for stable release * 3 : make up