Current time: 04-26-2024, 11:36 AM Hello There, Guest! (LoginRegister)


Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[UPDATED] Roundcube Fetchmail Plugin v0.2
Author Message
flames Offline
Junior Member
*

Posts: 98
Joined: Oct 2006
Reputation: 3
Post: #1
[UPDATED] Roundcube Fetchmail Plugin v0.2
GITHUB: https://github.com/flames/RCFetchmail

Ein Roundcube-Plugin um externe Mailkonten (GMX und Co.) abrufen zu können, per User bzw. per Mailbox natürlich. Ganz ISP-Like.
Installationsanleitung:

fetchmail installieren:

apt-get install fetchmail

fetchmail.pl Script nach /var/mail/ kopieren:

cp fetchmail.pl /var/mail/fetchmail.pl

in /var/mail/ Ordner "fetchmail" erstellen:

mkdir /var/mail/fetchmail

den Ordner und das Script müssen vmail:mail gehören, das Script muss ausführbar sein:

chown -R vmail:mail /var/mail/fetchmail*
chmod -R 700 /var/mail/fetchmail*

in der Roundcube-Datenbank muss eine weitere Tabelle erstellt werden:

CREATE TABLE `virtual_fetchmail` (
`mailget_id` int(11) NOT NULL auto_increment,
`userhere` varchar(50) collate utf8_unicode_ci NOT NULL,
`active` varchar(1) collate utf8_unicode_ci NOT NULL default '1',
`options` varchar(50) collate utf8_unicode_ci NOT NULL,
`type` varchar(50) collate utf8_unicode_ci NOT NULL default 'POP3',
`remoteserver` varchar(50) collate utf8_unicode_ci NOT NULL,
`remoteuser` varchar(50) collate utf8_unicode_ci NOT NULL,
`remotepass` varchar(50) collate utf8_unicode_ci NOT NULL,
PRIMARY KEY (`mailget_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=144 ;

in meinem fall ist Roundcube in /var/www/ispcp/gui/tools/roundcube installiert, u.u. Pfad anpassen.
Plugin installieren wir so:

cp -R ispcp_fetchmail /var/www/ispcp/gui/tools/roundcube/plugins/
vi /var/www/ispcp/gui/tools/roundcube/config/main.inc.php

um Zeile 240 findet ihr etwas in dieser Art:

$rcmail_config['plugins'] = array('ispcp_pw_changer', 'managesieve', 'sieverules');

das neue Fetchmail-Plugin aktivieren wir, in dem wir es folgender massen in diese Zeile eintragen:

$rcmail_config['plugins'] = array('ispcp_pw_changer', 'managesieve', 'sieverules', 'ispcp_fetchmail');

und die Anzahl der erlaubten Konten die abgerufen werden sollen (pro lokale Mailbox) anpassen:
vi /var/www/ispcp/gui/tools/roundcube/plugins/ispcp_fetchmail/config/config.inc.php

$rcmail_config['fetchmail_limit'] = 3;

das Perl script benötigt Zugangsdaten zu der MySQL Datenbank

vi /var/mail/fetchmail.pl
$db_database="roundcube";
$db_username="dbuser";
$db_password="dbpass";

natürlich wollen wir, dass Fetchmail regelmäßig die mails abholt (z.B. alle 5 Minuten):

crontab -e
*/5 * * * * sudo -u vmail /var/mail/fetchmail.pl > /dev/null 2&>1

dann noch die Log-Ausgabedatei erstellen und rechte geben:

touch /var/log/fetchmail
chown vmail:mail /var/log/fetchmail
chmod 600 /var/log/fetchmail

zur Funktionsweise: das Roundcube-Plugin speichert die Konten die abgerufen werden sollen in die Datenbank, das Perl-Script wird regelmäßig per Cron aufgerufen, ließt die Datenbank aus und erstellt eine temporäre fetchmailrc, ruft fetchmail damit auf und die User kriegen ihre mails von GMX und Co. in Ihr schönes IMAP-Postfach Smile
Bei jedem Aufruf werden immer die aktuellen Einträge aus der Datenbank geholt und die alte fetchmailrc überschrieben bzw. nach jedem Durchlauf wird die fetchmailrc gelöscht.

- Die UI des Plugins basiert auf dem ISPConfig3-Fetchmail-Plugin von Horst Fickel.
- Seid willkommen das Plugin nach Lust und Laune zu verbessern, dann aber nicht vergessen hochzuladen.
- Verbesserungsvorschlag 1: Die Sql-Daten in der Plugin Konfiguration raus, indem die Sql-Querys über die Roundcube-Plugin-API umgesetzt werden.
- Verbesserungsvorschlag 2: Leider werden die Passwörter in Plaintext in der Datenbank gespeichert. Vielleicht das Plugin die Passwörter verschlüsselt speichern lassen und im Perl-Script wieder decodieren. Die fetchmailrc muss die passwörter ja in Plaintext enthalten, oder?

changelog:
- es werden keine mysql zugangsdaten mehr benötigt, das plugin arbeitet nun 100% über die roundcube api und holt sich da was es braucht (das perl script benötigt jedoch weiterhin mysql daten)
- einige gui+usability verbesserungen
- diverse bugfixes
- russische übersetzung hinzugefügt

Nun viel Spass damit.


Attached File(s)
.zip  Frontend-0.2.zip (Size: 16 KB / Downloads: 76)
.zip  Backend-0.2.zip (Size: 2.11 KB / Downloads: 60)
(This post was last modified: 01-22-2011 12:36 PM by flames.)
08-12-2010 07:38 AM
Find all posts by this user Quote this message in a reply
Post Reply 


Messages In This Thread
[UPDATED] Roundcube Fetchmail Plugin v0.2 - flames - 08-12-2010 07:38 AM

Forum Jump:


User(s) browsing this thread: 1 Guest(s)