Current time: 07-03-2020, 08:11 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
flames Offline
Junior Member
*

Posts: 98
Joined: Oct 2006
Reputation: 3
Post: #2
RE: Roundcube ISPCP Fetchmail Plugin
hallo,

hat jemand schon eine rückmeldung dazu? funktioniert? funktioniert nicht? verbesserungsvorschläge?
08-27-2010 08:48 AM
Find all posts by this user Quote this message in a reply
4tux Offline
Junior Member
*

Posts: 87
Joined: May 2008
Reputation: 0
Post: #3
RE: Roundcube ISPCP Fetchmail Plugin
Moin,

bei mir funktioniert es super. Habe das vor ca ein bis zwei Wochen eingerichtet und mit verschiedenen anderen Konten ausprobiert.

Das schöne ist, dass diese Emails nicht nur per Webmail erreichbar sind, sondern auch mit jedem Emailprogramm.

Die Installation nach der Anleitung war einfach und schnell gemacht.
08-27-2010 04:16 PM
Find all posts by this user Quote this message in a reply
wynni Offline


Posts: 4
Joined: Sep 2010
Reputation: 0
Post: #4
RE: Roundcube ISPCP Fetchmail Plugin
Bei mir funktiuoniert das leider nicht. Er nimmt den www-data user für die Datenbank her, obwohl ich die configdatei angepasst habe....

$db = @new mysqli('localhost', 'dbuser', 'dbpass', 'dbname');

Errorlog:

Access denied for user 'www-data'@'localhost' (using password: NO) in /usr/share/apache2/roundcubemail-0.4/plugins/ispcp_fetchmail/ispcp_fetchmail.php on line 253

Kann mir da jemand weiterhelfen?
Vielen Dab
09-07-2010 05:48 AM
Find all posts by this user Quote this message in a reply
MattesKr Offline
Junior Member
*

Posts: 38
Joined: Dec 2008
Reputation: 0
Post: #5
RE: Roundcube ISPCP Fetchmail Plugin
Quote: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');
finde ich nicht!

also roundcube habe ich DOKU<-- nach dieser anleitung installiert
(This post was last modified: 09-08-2010 11:40 PM by MattesKr.)
09-08-2010 11:37 PM
Find all posts by this user Quote this message in a reply
flames Offline
Junior Member
*

Posts: 98
Joined: Oct 2006
Reputation: 3
Post: #6
RE: Roundcube ISPCP Fetchmail Plugin
@wynni

da bin ich echt überfragt jetzt. ich vermute du hast den dateien falsche permissions gegeben, der user ist nicht www-data sondern vu2000, die gruppe ist www-data. möglicherweise hat sich das irgendwie auf die mysql connection ausgewirkt. aber dennoch sehr merkwürdig.
versuch das mal (den pfad u.u. anpassen):
chown -R vu2000:www-data /usr/share/apache2/roundcubemail-0.4/plugins/ispcp_fetchmail

edit: hau das roundcube mal aus jeckerei nach /var/www/ oder noch besser nach /var/www/ispcp/gui/tools/
mv /usr/share/apache2/roundcubemail-0.4 /var/www/ispcp/gui/tools/roundcube
chown -R vu2000:www-data /var/www/ispcp/gui/tools/roundcube


@MattesKr

diese optionen findest du nicht in der config des plugins sondern des eigentlichen roundcube, also dort:
/var/www/ispcp/gui/tools/roundcube/config/main.inc.php

in meiner roundcube config sehen zeilen 236 bis 241 so aus:

PHP Code:
// ----------------------------------
// PLUGINS
// ----------------------------------

// List of active plugins (in plugins/ directory)
$rcmail_config['plugins'] = array('ispcp_pw_changer''managesieve''sieverules''ispcp_fetchmail'); 

solten diese zeilen nicht vorhanden sein, hast du eine zu alte roundcube version und musst updaten. das plugin läuft mir 0.4 einwandfrei.
(This post was last modified: 09-10-2010 08:33 PM by flames.)
09-10-2010 08:14 PM
Find all posts by this user Quote this message in a reply
wynni Offline


Posts: 4
Joined: Sep 2010
Reputation: 0
Post: #7
RE: Roundcube ISPCP Fetchmail Plugin
ich habe nun das plugin meinen ansprüchen (debian lenny) angepasst....
einmal die conf.inc.php erweitert auf
Code:
mysql_connect(localhost,'roundcubeuser','password'); @mysql_select_db('roundcubedb') or die( "Unable to select database");

und das perlscript schreibt nun direkt in die fetchmailrc. Klappt alles wunderbar.

wynni

P.S. Möchtest du da Plugin nicht auch im roundcubeforum posten?
09-15-2010 09:43 PM
Find all posts by this user Quote this message in a reply
flames Offline
Junior Member
*

Posts: 98
Joined: Oct 2006
Reputation: 3
Post: #8
RE: Roundcube ISPCP Fetchmail Plugin
doch werd ich machen.
zu deinem problem, was du hattes, hab ich aber schon die lösung. werd das plugin nochmal überarbeiten und hier wieder anhängen.
das problem war, dass ich zum connecten mysqli nutze, habe aber gleichzeitig mysql_real_escape_string in einigen statements benutzt, mysql_real_escape_string erfordert aber, dass die mysql connection steht bevor das statement aufgerufen wird (das hast du ja per mysql_connect erreicht). habe quasi obejektorientiert die connection aufgebaut und im gleichen atemzug prozedural abfragen gestartet. dass, es bei mir keine probleme bereitet hat ist irgendwie merkwürdig.
ich bin grade am ausbau des dyndns zeugs beschäftigt, daher poste ich eine komplette OO version des fetchmail plugins erst in den nächsten tagen (und dann auch im rc forum)

achja, deine modifikationen interessieren mich natürlich auch, könntest du das vielleicht etwas ausführlicher erklären?
und was meinst du, dass "das perlscript nun direkt in die fetchmailrc schreibt", das hat es auch in der ursprünglichen version getant, jedoch nach dem die fetchmailrc abgearbeitet wurde löschte es diese wieder, und erzeugte bei jedem weiteren cycle wieder eine frische. das war dazu gedacht, dass alle änderungen (kundeseitig) bei jedem cycle frisch in der fetchmailrc sind und quasi.
wir können uns ja mal "zusammensetzen" und das plugin mal so richtig aufpolieren. das ist meine erste erfahrung mit rc plugin api, daher gibts da noch sehr viele verbesserungsansätze.

edit, ich habe auch lenny im einsatz. die "or die()" geschichte habe ich extra nicht eingebaut, sondern einen eigenen errorlog ohne die()/exit() gemacht, damit bei eventuellen fehlern nicht direkt das ganze roundcube mit abschmiert. die exits sind glaub sogar noch drin aber auskommentiert. ist ne frühe alpha version xD
(This post was last modified: 09-16-2010 03:27 AM by flames.)
09-16-2010 03:18 AM
Find all posts by this user Quote this message in a reply
wynni Offline


Posts: 4
Joined: Sep 2010
Reputation: 0
Post: #9
RE: Roundcube ISPCP Fetchmail Plugin
nun ja das perlscript erstellt eine temp fetcmailrc und löscht es anschliessend wieder. das gefiel mir nicht so. ich schreibe jetzt direkt in /etc/fetchmailrc und lösche es nicht mehr. alle xx minuten wird diese datei wieder überschrieben.

beim plugin habe ich nur die mysql anbindung geändert wie vorher gepostet ...

wynni

P.S. Da du ja sehr geschickt mir der api arbeitest... ich bräuchte ein remember the milk plugin Smile vielleicht wenn du mal zeit hast Smile
(This post was last modified: 09-17-2010 04:38 PM by wynni.)
09-17-2010 04:33 PM
Find all posts by this user Quote this message in a reply
flames Offline
Junior Member
*

Posts: 98
Joined: Oct 2006
Reputation: 3
Post: #10
RE: Roundcube ISPCP Fetchmail Plugin
lol, ich geschickt mit api? danke, aber das ist eine völlige überbewertung. xD

hast du das perl script auch so angepasst, dass es einträge aus der /etc/fetchmailrc auch wieder löschen kann, falls ein kunde in seinem postfach/fetchmail entsprechende einträge entfernt oder bearbeitet? das war ja der grund richtung temporäre fetchmailrc zu gehen.

oder nutzt du das plugin auf nem server wo nur du alleine zugriff hast? übringens, ich habe v0.2 fertig, wird gleich geuppt. an dem perl script habe ich nichts geändert, alle änderungen sind nur das eigentlich rc plugin betreffend.
changelog:
- es werden keine mysql zugangsdaten mehr benötigt, das plugin arbeitet nur 100% über die roundcube api und holt sich da was es braucht
- einige gui+usability verbesserungen
- diverse bugfixes
09-18-2010 01:00 AM
Find all posts by this user Quote this message in a reply
Post Reply 


Forum Jump:


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