Hilfe ich bin zu blöd! Mails über Pop sammeln und über smtp abrufen?

Status
Für weitere Antworten geschlossen.

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Die Rechte der Datei sollten eigentlich passen. Von dem her müsste der ipkg cron dein Script eigentlich ausführen. Wie sehen der die Rechte der getmail Script Datei selber aus? Ist die Datei auch sicher ausführbar? Ebenfalls mal im Zweifelsfall ein ls -al posten
 

abdrop

Benutzer
Mitglied seit
03. Aug 2010
Beiträge
36
Punkte für Reaktionen
0
Punkte
6
OK, hier also das Verzeichnis mit der getmail-Datei:

xx> ls -al
drwxrwxrwx 3 Username users 4096 Aug 3 15:53 #recycle
drwxr-xr-x 5 Username users 4096 Oct 7 21:34 .
drwxr-xr-x 5 root root 4096 Aug 1 21:30 ..
drwx------ 9 Username users 4096 Oct 8 07:56 .Maildir
drwxrwxr-x 2 root root 4096 Oct 8 07:52 .getmail
-rwxrwxrwx 1 root root 167 Oct 7 21:57 getmail.sh

Und zur Sicherheit noch der Inhalt der getmail-Datei (wobei der Aufruf "von Hand" ja funktioniert):

xx> vi getmail.sh
#!/bin/sh

if [ -e /tmp/getmail.lock ] ; then
exit
fi
touch /tmp/getmail.lock

/opt/bin/getmail -q -l --rcfile /volume1/homes/Username/.getmail/gmx.rc

rm /tmp/getmail.lock

Ist irgendwas an den Rechten bzw. Einträgen falsch?
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ähm, ich als Linux würde es auch verweigern :)
Eigentlich sollte das .getmail Verzeichnis und alle Dateien darin deinem User gehören (chown kann helfen)
Auch die Scriptdatei selber sollte deinem User gehören. Vermutlich ist cron empfindlicher was die Rechte anbelangt als bei der manuellen Ausführung auf der Konsole.
Zusätzlich sollte nur der Eigentümer von .getmail, also Username, Lese/Schreibrechte auf .getmail sowie auch auf das Script haben
 

abdrop

Benutzer
Mitglied seit
03. Aug 2010
Beiträge
36
Punkte für Reaktionen
0
Punkte
6
DANKE!!!! Das war's!!

Das muss passiert sein, als ich die Datei nochmal neu erstellt habe, weil beim 1. Mal bin ich nach Wiki vorgegangen und war als Username eingeloggt. Scheinbar war ich beim 2. Mal, als ich die Datei neu erstellt hatte, als root eingeloggt.

Ich hatte mir darüber auch keine Gedanken gemacht, weil der Job von der Konsole ja problemlos gestartet werden konnte.

Hast Du jetzt noch einen Tip für mich, wie ich's hinbekomme, dass nur die neuen Mails vom Server abgerufen werden? Ich lasse ja die alten Mails nicht löschen und die werden dann immer und immer wieder neu runtergeladen.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Gibt getmail beim Aufruf in deinem Script mal den Parameter
--new or -n — retrieve only new (unseen) messages
an
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Respekt

Erstmal Hallo und danke an die Poster in diesem Thread :)
Dank euch hat das einrichten der MailStation eigentlich sehr gut geklappt.
Aber auch bei mir will der Cron nichts tun. Der manuelle Aufruf klappt einwandfrei.

Ich habe es wie in den vorhergehenden Posts beschrieben versucht und bekomme leider keine Reaktion.

Ich befürchte ich sehe den Wald vor lauter Bäumen nicht mehr :)

Ich habe die Besitzer und Rechte gesetzt (User hier ist "Alina")

Rich (BBCode):
DiskStation> cd /volume1/homes/Alina/
DiskStation> ls -al
drwxr-xr-x    4 Alina    users         4096 Nov  7 22:05 .
drwxr-xr-x    6 root     root          4096 Nov  7 21:41 ..
drwxrwxrwx    6 Alina    users         4096 Nov  8 00:07 .Maildir
drw-------    2 Alina    users         4096 Nov  7 23:39 .getmail
-rwx------    1 Alina    users          211 Nov  7 23:19 getmail.sh


DiskStation> cd /volume1/homes/Alina/.getmail/
DiskStation> ls -al
drw-------    2 Alina    users         4096 Nov  7 23:39 .
drwxr-xr-x    4 Alina    users         4096 Nov  7 22:05 ..
-rw-------    1 Alina    users         5843 Nov  7 23:39 log
-rw-------    1 Alina    users          345 Nov  7 23:24 mail.rc
-rw-------    1 root     root             0 Nov  7 23:39 oldmail-pop.w*


DiskStation> cd /volume1/homes/Alina/.Maildir/
DiskStation> ls -al
drwxrwxrwx    6 Alina    users         4096 Nov  8 00:07 .
drwxr-xr-x    4 Alina    users         4096 Nov  7 22:05 ..
drwx------    5 Alina    users         4096 Nov  7 22:19 .Trash
drwx------    2 Alina    users         4096 Nov  8 00:07 cur
-rw-------    1 Alina    users         2718 Nov  7 23:39 dovecot-uidlist
-rw-------    1 Alina    users            8 Nov  7 22:19 dovecot-uidvalidity
-rw-------    1 Alina    users            0 Nov  7 22:19 dovecot-uidvalidity.4cd           717cb
-rw-------    1 Alina    users          640 Nov  7 23:39 dovecot.index
-rw-------    1 Alina    users        35840 Nov  7 23:39 dovecot.index.cache
-rw-------    1 Alina    users         5040 Nov  8 00:07 dovecot.index.log
drwx------    2 Alina    users         4096 Nov  7 23:39 new
-rw-------    1 Alina    users            6 Nov  7 22:19 subscriptions
drwx------    2 Alina    users         4096 Nov  7 23:39 tmp

DiskStation> cd /opt/var/cron/crontabs/
DiskStation> ls -al
drwxr-xr-x    2 root     root          4096 Nov 10 22:32 .
drwxr-xr-x    3 root     root          4096 Oct 28 23:54 ..
-rw-------    1 Alina    users           67 Nov 10 22:47 Alina

Beim Testlauf kommt auch brav folgende Meldung:

Rich (BBCode):
DiskStation> killall cron
DiskStation> /opt/sbin/cron -x test
debug flags enabled: test
[3357] cron started
log_it: (Alina 11639) CMD (/volume1/homes/Alina/getmail.sh &>/dev/null)

Die Datei "Alina" hab ich wie folgt geschrieben:

Versuch 1:
Rich (BBCode):
DiskStation> cd /opt/var/cron/crontabs/
DiskStation> vi Alina
#!/bin/sh
*/2 * * * * /volume1/homes/Alina/getmail.sh &>/dev/null

Versuch 2:
Rich (BBCode):
DiskStation> cd /opt/var/cron/crontabs/
DiskStation> vi Alina
#!/bin/sh
*/2 * * * * "/volume1/homes/Alina/getmail.sh" &>/dev/null

Versuch 3:
Rich (BBCode):
DiskStation> cd /opt/var/cron/crontabs/
DiskStation> vi Alina
#!/bin/sh
*/2 * * * * su Alina -c "/volume1/homes/Alina/getmail.sh" &>/dev/null

Alle drei Varianten werden im Testlauf durchgeführt aber wenn ich den Cron starte passiert nichts.

Habe ich hier etwas übersehen?

Danke euch schonmal vorab.

Grüße
Rie
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Wenn du als root angemeldet bist und dieses Kommando
Code:
[FONT=monospace]
[/FONT]su Alina -c /volume1/homes/Alina/getmail.sh
absetzt, dann geht es ohne Fehlermeldung durch?
Gibt es irgendwelche Fehlermeldungen im getmail Log File?
Code:
[FONT=monospace]
[/FONT]-rw-------    1 Alina    users         5843 Nov  7 23:39 log
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Dann bringt er eine Fehlermeldung:

Rich (BBCode):
DiskStation> cd /volume1/homes/Alina/.getmail/
DiskStation> ls -al
drw-------    2 Alina    users         4096 Nov  7 23:39 .
drwxr-xr-x    4 Alina    users         4096 Nov  7 22:05 ..
-rw-------    1 Alina    users         5843 Nov  7 23:39 log
-rw-------    1 Alina    users          345 Nov  7 23:24 mail.rc
-rw-------    1 root     root             0 Nov  7 23:39 oldmail-pop.w*
DiskStation> su Alina -c /volume1/homes/Alina/getmail.sh
Error: configuration file /volume1/homes/Alina/.getmail/mail.rc does not exist
DiskStation>

Aber die Datei mail.rc ist ja im angegebenen Verzeichnis vorhanden.

Die getmail.sh sieht wie folgt aus:

Rich (BBCode):
DiskStation> vi getmail.sh
#!/bin/sh

if [ -e /tmp/getmail.lock ] ; then
exit
fi
touch /tmp/getmail.lock

/opt/bin/getmail --getmaildir /volume1/homes/Alina/.getmail -q --rcfile /volume1/homes/Alina/.getmail/mail.rc

rm /tmp/getmail.lock

Folgende Meldungen stehen im Log File,
die sind aber beim Manuellen Aufruf entstanden:
Damals habe ich bevor ich den Befehl zur Ausführung abgesetzt habe mittel "su Alina" auf den User Alina gewechselt.

Rich (BBCode):
2010-11-07 23:24:24 msg 20/35 (9321 bytes) msgid 0Lu11X-1OgccU2mPe-011Z7d from <unknown> delivered to Maildir
2010-11-07 23:24:24 msg 21/35 (9322 bytes) msgid 0MZQIG-1OudBl0J49-00L3qi from <unknown> delivered to Maildir
2010-11-07 23:24:24 msg 22/35 (9322 bytes) msgid 0Mb5Ba-1Otl7W1Gfb-00KdFY from <unknown> delivered to Maildir
2010-11-07 23:24:25 msg 23/35 (9322 bytes) msgid 0Lno58-1OhPop3wBb-00hK3q from <unknown> delivered to Maildir

Sorry für die späte Antwort,
ich kann nur Abends auf die DS gehen.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Nur um ganz sicher zu gehen: Ein
Code:
ls -al /volume1/homes/Alina/.getmail/mail.rc
[FONT=monospace]
[/FONT]ergibt keinen Fehler?
Kann es sein, dass du in deinem rc-File Pfadangaben beginnend mit ~/ drin hast?
Und mal noch ein
Code:
cat /etc/passwd | grep Alina
machen. Nur um sicherzugehen, dass das Homeverzeichnis korrekt ist und dein User eine gültige Loginshell hat.
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
ls -al /volume1/homes/Alina/.getmail/mail.rc bringt:
Rich (BBCode):
DiskStation> ls -al /volume1/homes/Alina/.getmail/mail.rc
-rw-------    1 Alina    users          345 Nov  7 23:24 /volume1/homes/Alina/.getmail/mail.rc
DiskStation>

cat /etc/passwd | grep Alina bringt:
Rich (BBCode):
DiskStation> cat /etc/passwd | grep Alina
Alina:x:1028:100:Alina:/var/services/homes/Alina:/bin/ash
DiskStation>

Im mail.rc File habe ich nur absolute Pfade:

Rich (BBCode):
[options]
delete = true
message_log = /volume1/homes/Alina/.getmail/log

[retriever]
type = SimplePOP3SSLRetriever
server = pop.PROVIDER.de
port = 995
username = LOGIN.NAME
password = MEGAGEHEIMESPWD
use_apop = false
timeout = 180
delete_dup_magids = false

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

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Hast du mal probiert im getmail.sh beim Parameter --rcfile nur den Namen des Files anzugeben (also ohne Pfad)? Das Verzeichniss ist mit --getmaildir ja eigentlich schon festgelegt.
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Ich habe den Pfad vor dem File entfernt
Rich (BBCode):
DiskStation> cd /volume1/homes/Alina/
DiskStation> vi getmail.sh
#!/bin/sh

if [ -e /tmp/getmail.lock ] ; then
exit
fi
touch /tmp/getmail.lock

/opt/bin/getmail --getmaildir /volume1/homes/Alina/.getmail -q --rcfile mail.rc

rm /tmp/getmail.lock

Test läuft
Rich (BBCode):
DiskStation> /opt/sbin/cron  -x test
debug flags enabled: test
[18974] cron started
log_it: (Alina 19408) CMD (/volume1/homes/Alina/getmail.sh &>/dev/null)

Und der dubiose Fehler zeigt sich immer noch:
Rich (BBCode):
DiskStation> su Alina -c /volume1/homes/Alina/getmail.sh
Error: configuration file /volume1/homes/Alina/.getmail/mail.rc does not exist
DiskStation>

Auch der Cron zeigt auch weiterhin keine Funktion
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Auch der Cron zeigt auch weiterhin keine Funktion
Du weisst dass du mit cron -x test nur prüfst welche Kommandos ausgeführt würden? Die werden dabei aber nicht abgearbeitet. Du musst schon den cron wieder starten ;)
Was passiert denn wenn du mal
Code:
su Alina -c "/opt/bin/getmail --getmaildir /volume1/homes/Alina/.getmail --rcfile mail.rc"
machst? Werden dann die Mails abgeholt oder haut es auch einen Fehler raus, weil das File nicht vorhanden sei?
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Du weisst dass du mit cron -x test nur prüfst welche Kommandos ausgeführt würden? Die werden dabei aber nicht abgearbeitet. Du musst schon den cron wieder starten ;)

Ja, das ist mir klar ;)
Ich habe den Cron nach dem Test natürlich auch normal gestartet und auf Reaktion gewartet.

Ich prüfe deinen Vorschlag gleich heuet Abend.
Danke Dir
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Da kommt wieder der gleiche Fehler...
Ich verstehe nicht warum diese Meldung kommt. das mail.rc gibt es ja.

Rich (BBCode):
DiskStation> su Alina -c "/opt/bin/getmail --getmaildir /volume1/homes/Alina/.getmail --rcfile mail.rc"
Error: configuration file /volume1/homes/Alina/.getmail/mail.rc does not exist
DiskStation>
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Da das File bei dir ja nachweislich vorhanden ist, kann es imho eigentlich nur noch ein Berechtigungsproblem sein, das verhindert, dass das File gelesen werden kann. Probier einfach mal testweise ein chmod 0644 auf dein rc File und probier nachher nochmals mit getmail und su.
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Ich habe folgende chmods durchprobiert: 777, 0600, 0644, 0777
Das Resultat bleibt das gleiche.
Ich habe auch mal testweise den Besitzer auf root gesetzt, das bewirkt aber auch nichts.

Ich habe den Ordner .getmail auf chmod 777 gesetzt
und die mail.rc auf 0600
dann wird der Befehl ausgeführt.
Wenn ich den Ordner auf 0644 setze geht es nicht.

Ich habe den Cron wieder gestartet, aber wieder kein automatischer Abruf.
Es gibt auch keinen neuen Eintrag im log File.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Dann kann es ja eigentlich nur noch ein Problem mit su sein. Kannst du dich denn auf der Shell als Alina anmelden und dann den getmail Befehl ohne su ausführen? Klappt das ohne die besagte Fehlermeldung?
 

RieGoth

Benutzer
Mitglied seit
07. Nov 2010
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Also das klappt einwandfrei.

Rich (BBCode):
login as: Alina
Alina@192.168.178.22's password:

BusyBox v1.16.1 (2010-10-08 14:56:39 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

DiskStation> /opt/bin/getmail --getmaildir /volume1/homes/Alina/.getmail/ --rcfile mail.rc
Warning: ignoring unknown parameter "delete_dup_magids" (value: false)
getmail version 4.17.0
Copyright (C) 1998-2009 Charles Cazabon.  Licensed under the GNU GPL version 2.
SimplePOP3SSLRetriever:User@Provider:995:
  msg 1/4 (1182 bytes) delivered, deleted
  msg 2/4 (9320 bytes) delivered, deleted
  msg 3/4 (9320 bytes) delivered, deleted
  msg 4/4 (9321 bytes) delivered, deleted
  4 messages (29143 bytes) retrieved, 0 skipped
DiskStation>
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Also das klappt einwandfrei.
Dann sollte es eigentlich mit dem ipkg cron und einem Userfile Alina klappen. Denn damit sollte eigentlich kein su verwendet werden.
Was du auch noch probieren könntest, wäre es im Home von Alina eine Datei Namens .profile (Schreib und Leserechte nur für deinen User, wichtig der Punkt, der das File als versteckt markiert)
Code:
#!/bin/sh
HOME=/volume1/homes/Alina
export HOME
und dann nochmals mit su probieren. Geht dat denn ohne Fehler?
 
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