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