===== 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