Mailstation zum Abrufen externer Mailkonten konfigurieren

Status
Für weitere Antworten geschlossen.

flutsch

Benutzer
Mitglied seit
15. Okt 2008
Beiträge
93
Punkte für Reaktionen
0
Punkte
0
Ich habe mal ein kleines Tutorial erstellt, in dem erklärt wird, wie man mit
der Synology Mailstation seine Mails von einem externen Provider abholen und
in die lokalen Konten einsortieren lassen kann.
Den Hauptteil der Arbeit kann ich mir aber nicht selber zuschreiben. Er gebührt
Purzel hier aus dem Forum. Vielen Dank für seine fantastische Arbeit.

Ich gehe davon aus, dass ihr die Firmware 2.1 oder eine neuere installiert habt
und das Mailstation Paket eingebunden wurde. Desweiteren braucht ihr SSH- oder
Telnet-zugang zu eurer Diskstation und ein funktionierendes ipkg Paketmanagement.

So, tief durchatmen und ran ans Werk.
Das Mailstation Paket muss aktiviert werden. Das tut ihr, wenn nicht schon geschehen,
nach Anleitung.
Danach loggt man sich als "root" via SHH/Telnet ein.


Nun installiert man als erstes "cron", "python" und "py-getmail" mittels:

Rich (BBCode):
ipkg install cron
ipkg install python
ipkg install py-getmail

Ich gehe im folgenden Teil davon aus, dass der "homes" Ordner auf /volume1 liegt
und ich erkläre das mal anhand des fiktiven Users "Bob".
Erstellt nun einen Ordner "rcfiles" im Homes-Ordner von bob.

Rich (BBCode):
mkdir /volume1/homes/bob/rcfiles

Erstellt nun in diesem Ordner eine Datei "/volume1/homes/bob/getmail.sh" mit folgendem Inhalt:

Rich (BBCode):
#!/bin/sh
/opt/bin/getmail -q --rcfile /volume1/homes/bob/rcfiles/bob.gmx.rc

Jetzt ändert man noch die ACL mittels:

Rich (BBCode):
chmod 0700 /volume1/homes/bob/getmail.sh
chown root:root /volume1/homes/bob/getmail.sh

So, nun muss noch die "/volume1/homes/bob/rcfiles/bob.gmx.rc" erstellt werden.
In diese kommt folgender Inhalt:

Rich (BBCode):
	[options]
	delete = false
	message_log = /volume1/homes/bob/rcfiles/bob.gmx.log

	[retriever]
	type = SimplePOP3Retriever
	server = pop.gmx.de
	port = 110
	username = <gmx-id>
	password = <pass>
	use_apop = false
	timeout = 180
	delete_dup_msgids = false

	[destination]
	type = Maildir
	path = /volume1/homes/bob/.Maildir/
	user = bob
	filemode = 0600

Nachdem diese File gespeichert wurde, ändert man auch hier wieder die ACL.

Rich (BBCode):
chmod 0600 /volume1/homes/bob/rcfiles/bob.gmx.rc
chown root:root /volume1/homes/bob/rcfiles/bob.gmx.rc

Jetzt sollte man durch Aufrufen der getmail.sh schon bobs mails in seinen lokalen
Account einstorieren lassen können.
Editiert nun die Crontab-File von root mittels:

Rich (BBCode):
crontab -e

Fügt nun (mit "i" gelangt man zum Einfügemodus) folgende Zeile ein:

Rich (BBCode):
*/10 * * * * /volume1/homes/bob/getmail.sh &>/dev/null

Speichert die Crontab, indem ihr mit "ESC" den Einfügemodus verlasst und mit "ZZ" schließt.
So, das war's. Startet nun noch CRON neu mit:

Rich (BBCode):
/opt/etc/init.d/S10cron

Jetzt sollten Bob's Mails von GMX alle 10 Minuten abgeholt und in sein lokales Konto einsortiert werden.
Er kann nun alle seine Mails in Cubemail oder einem anderen Client driekt auf der Diskstation lesen.

Getestet hab ich das ganze Spiel auf meiner DS-408, aber es sollte auf allen anderen Devices ebenso funktionieren.
Ich hoffe, das ist soweit alles vollständig. Wenn ich etwas vergessen habe, oder sich Fehler eingeschlichen
haben, bitte ich um Hinweise hier im Forum.

Ansonsten viel Erfolg beim Nachmachen, Flutsch
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Fehler

Hallo

ich habe versucht deine Anleitung nachzuvollziehen.
Aber als ich ipkg install py-getmail eingab bekam ich folgenden Fehler:
Rich (BBCode):
DiskStation> ipkg install py-getmail
Nothing to be done
An error ocurred, return value: 4.
Collected errors:
Cannot find package py-getmail.
Check the spelling or perhaps run 'ipkg update'
DiskStation>
Eine Idee ?

Gruß moor
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ihr müsst immer dazu schreiben, für welchen Prozessor ihr das IPKG-Paket geladen habt. Je nach Prozessor-Typ werden die Pakete ja kompiliert und es gibt nicht für jeden Prozessortyp alles bzw. das gleiche, weil es ja nicht überall läuft.

Itari
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Klar hab ich vergessen.
Sorry
Ich habe hier eine DS108j die sagt mir:
Rich (BBCode):
cpu             : 82xx
revision        : 16.20 (pvr 8081 1014)
bogomips        : 132.30
vendor          : Motorola 
machine         : MPC8241
processor       : PVID: 0x80811014, vendor: Motorola

Gruß moor
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Man kann sich die IPKG-Pakete anschauen mit

Rich (BBCode):
ipkg list | more

oder wenn man gezielt etwas sucht:

Rich (BBCode):
ipkg list | grep -i suchbegriff

[-i schaltet Groß-/Kleinschreibung aus]

Auf diese Weise kann man feststellen, ob ein bestimmtes Paket bei der eigenen IPKG-Version dabei ist oder nicht. Um das Beispiel mal zu stressen:

Rich (BBCode):
Synology> ipkg list | grep -i getmail
py-getmail-common - 4.8.4-1 - getmail is a mail retriever designed to allow you to get your mail from one or more mail accounts on various mail servers to yo
py24-getmail - 4.8.4-1 - getmail is a mail retriever designed to allow you to get your mail from one or more mail accounts on various mail servers to yo
py25-getmail - 4.8.4-1 - getmail is a mail retriever designed to allow you to get your mail from one or more mail accounts on various mail servers to yo

Bei mir auf der DS207+ gäbe es also auch kein py-getmail-Paket zum Installieren, dafür aber andere ...

Itari

PS. Ob man den cron wirklich zusätzlich installieren muss? Es gibt ja schon einen, der recht hübsch läuft.
 

flutsch

Benutzer
Mitglied seit
15. Okt 2008
Beiträge
93
Punkte für Reaktionen
0
Punkte
0
Hallo,

genau das meine ich mit den kleinen Fehlern. Es ist in der Tat das Paket "py25-getmail". Danke für den Hinweis. Das common-Paket sollte autmatisch installiert werden., Wenn es das nicht tut, müsst ihr es noch manuell installieren.

Ob der Cron sein muss, oder nicht weiss ich nicht. Ich hab es einfach mal gemacht, weil man dann das Crontab Tool zur Verfügung hat, welches sonst nicht da ist. Das hat mir, als Anfänger die Entscheidung leichter gemacht, welche Datei ich überhaupt editieren muss.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Ob der Cron sein muss, oder nicht weiss ich nicht. Ich hab es einfach mal gemacht, weil man dann das Crontab Tool zur Verfügung hat, welches sonst nicht da ist. Das hat mir, als Anfänger die Entscheidung leichter gemacht, welche Datei ich überhaupt editieren muss.

Banause, wo wir doch so hübsche .spk-Pakete für ein Web-CronJob-Interface geschrieben haben ... mach dich ruhig beliebt hier :D

Itari
 

flutsch

Benutzer
Mitglied seit
15. Okt 2008
Beiträge
93
Punkte für Reaktionen
0
Punkte
0
Au Au Au, nich hauen, bitte ;)

Also es muss nicht unbedingt ein weiterer Cron installiert werden.
Es reicht, wenn ihr folgende Zeile in "/var/spool/cron/crontabs/root" einfügt:

Rich (BBCode):
*/10    *       *       *       *       root    /volume2/homes/bob/getmail.sh &>/dev/null

und danach die DS neustartet.
 

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Au Au Au, nich hauen, bitte ;)

Doch, doch, doch :D

Also man kann auch die /etc/crontab direkt editieren und mit
Rich (BBCode):
/usr/syno/etc/rc.d/S04crond.sh stop
den Crond anhalten und mit
Rich (BBCode):
/usr/syno/etc/rc.d/S04crond.sh start
wieder starten (ohne die DS neu zu booten.

Oder man installiert sich das .spk-Paket für die CronJobs *guck im Wiki*, da wäre das dann alles schön zusammen eingebaut.

Itari
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Getmail

Hi
also dein Tutorial hab ich durchgearbeitet.
Kommen aber keine Mails an, bitter. Ich weiß das welche im Postfach beim Provider warten.
Wie kann ich denn da Schritt für Schritt checken wo es nicht funktionieren kann?

Gruß Stefan
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Also ein neuer Cron sollte schon installiert werden. Der Default Cron erlaubt nur Aufrufe für root. Das getmail.sh Script wird jedoch aus dem Userverzeichnis des jeweiligen Users aufgerufen und sollte damit auch unter seiner Userkennung ausgeführt werden
Wenn schon via Default Cron dann am besten mit su und dem korrekten Benutzer
Code:
... root  su DeinUser -c 'command to execute'
Das Ausführen unter einen anderen Benutzer kann die Rechte auf der Mailbox negativ beeinflussen. Es könnte sein, dass die Eigentümerschaft damit auf root geändert wird und damit bestünde, dann für den User auf gewisse Files der Mailbox kein Zugriff mehr
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Ups ...
Code? in der getmail.sh oder bei crontrab?
sorry newbi!
Könnteste das noch ein wenig genauer posten?:)

lG Stefan

edit
so wie es aussieht führt er den job gar nicht aus, denn es ist auch kein log eintrag vorhanden.
wo schreibt cron denn seine logs hin? das ich mal schauen kann was er da alle 10min so macht
 

flutsch

Benutzer
Mitglied seit
15. Okt 2008
Beiträge
93
Punkte für Reaktionen
0
Punkte
0
Hi, also am besten du rufst mal die getmail.sh auf. Wenn alles funktioniert, sollte danach eine Logfile im angegebenen Verzeichnis zu finden sein. Wenn dem so ist, schau mal rein, ob getmail ein Problem hat. Wenn alles gut aussieht, liegt es wohl am Cron.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Meinst du meinen Beispiel Code? Der ist für die contab des Default Crons. Aber wie gesagt ist es besser sich einen alternativen Cron zu installieren und dann getmail.sh unter dem korrekten User auszuführen. Den alternative Corn gibt es via ipkg (dazu mehr in unserem Wiki)
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Also
ich habe die getmail.sh mal aufgerufen
da kommt dann das:
Rich (BBCode):
# ./getmail.sh
Error: Default config/data dir "/root/.getmail/" does not exist - create or specify alternate directory with --getmaildir option

shit
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Alles wird gut!

Hallo liebe Foren-Gemeinde

So nun hab ich es!
Anfängerfehler denke ich:

Warum hat es nicht gefunxt:
1. es musste unter /root noch das verzeichnis /.getmail angelegt werden.
2. copy und past haben so ihre Tücken, denn:
Rich (BBCode):
	[options]
	delete = false
	message_log = /volume1/homes/bob/rcfiles/bob.gmx.log

	[retriever]
	type = SimplePOP3Retriever
	server = pop.gmx.de
	port = 110
	username = <gmx-id>
	password = <pass>
	use_apop = false
	timeout = 180
	delete_dup_msgids = false

	[destination]
	type = Maildir
	path = /volume1/homes/bob/.Maildir/
	user = bob
	filemode = 0600
wenn man das so einfügt und vorher natürlich die anpassung vornimmt und dann VERGISST die TABS und ne LEERZEILE zu entfernen....

.... dann geht das auch nicht. Da ist Linux ja wie jeder PC eigen mit. -fg-


Lange rede, ich habe viel gelernt und mache mich nun an die Arbeit um die restlichen Mailkonten einzurichten.

DIe Beiträge hier im Forum haben mir super geholfen. in stolz drauf das ich das als Neuling gepackt habe.

Das nächste Problem kommt bestimmt.:D

LG Stefan ;)
 

flutsch

Benutzer
Mitglied seit
15. Okt 2008
Beiträge
93
Punkte für Reaktionen
0
Punkte
0
Ohja danke. Ich wusste nicht mehr genau, ob ich /root/.getmail erstellt habe, weil ich es mit ls nicht angezeigt bekam, aber es existiert. Also wichtig, dieses Directory mit anlegen.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ACHTUNG
Mit dieser Methode werden Emails unter dem Benutzer root abgeholt und verareitet. Kein öffentlich erreichbarer Server sollte als root laufen.
Die .getmail gehört ins Homeverzeichnis Eurers Users und nicht in jenes von root! Email als root zu empfangen ist ziemlich gefährlich.
Der Prozess zum Abholen der Emails SOLLTE unter eurem Benutzer laufen
Zum Testen auf der Konsole
Code:
su EUER_USER<RETURN>
sh ./getmail.sh
 

moor

Benutzer
Mitglied seit
16. Mrz 2009
Beiträge
19
Punkte für Reaktionen
0
Punkte
0
Das macht wirklich Sinn

Ok das sehe ich ein.
Auf meinem Client arbeite ich auch nicht mit Admin Rechten (ööääähmm jedenfals meisten).

Dann gib doch bitte mal hier einen Vorschlag was geändert werden muss.

punkt a) .getmail ins home Verzeichnis

... und dann?

Gruß Stefan
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ok das sehe ich ein.
Auf meinem Client arbeite ich auch nicht mit Admin Rechten (ööääähmm jedenfals meisten).

Dann gib doch bitte mal hier einen Vorschlag was geändert werden muss.

punkt a) .getmail ins home Verzeichnis

... und dann?

Gruß Stefan
Und dann aus dem Homeverzeichnis als korrekter User aufrufen. Und genau das macht der Code Schnippel oben (mit su DEIN_USER und sh ~/getmail.sh)
Solange das getmail.sh nicht zweifelsfrei und fehlerfrei läuft solltest du in den jeweiligen rc-Files für die externen Accounts definieren, dass die Emails auf den externen Servern nicht gelöscht werden
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat