PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : cyrus imap und exim4 spielen nicht zusammen



luh
27.02.08, 14:21
Hallo,
Ich bin immernoch dabei einen Mailserver aufzusetzen.
Software: exim4, cyrus2.2, egroupware

Bei der Einrichtung habe ich mich an diesem Tutorial orientiert http://www.kai-hildebrandt.de/linux/maildienste.html#cyrus

Das Versenden von Emails auf der Konsole funktioniert 1A. Emails kommen an.



echo "Ich bin der Nachrichtentext" | mail -s"Testmail" email@web.de


folglich funktioniert Exim4 also was das Versenden angeht. Beim Annehmen hat er Mails normalerweise nach /var/spool/mail/username geschrieben.

in cyrus.conf:

lmtpunix cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=100
in imapd.conf:

lmtpsocket: /var/run/cyrus/socket/lmtp

und der gleiche socket ist auch in /etc/exim4/conf.d/transport/30_exim4-config_cyrus_deliver eingetragen. Sollte also die Emails weiterleiten. Emails sind aber schlussendlich weder in den Mailboxen der user zu finden noch in /var/spool/mail/username.

Was könnte mit denen passiert sein? (sie bouncen nicht) Vermutlich werden sie weitergeleitet, - aber wohin? Und warum kommen sie nicht an?

Beim Senden aus eGroupware bekomme ich folgende Nachricht:

SMTP Fehler: Die folgenden EMpfänger sind nicht korrekt: email@web.de


Woran kann das liegen?

Hoffe ihr habt Ideen!
Cheers,
luh

P.S: email@web.de ist in diesem Fall meine normale Adresse

cane
27.02.08, 15:39
Poste die Logs.

mfg
cane

luh
27.02.08, 16:01
/var/mail/log


Feb 27 15:51:29 domain cyrus/master[29578]: about to exec /usr/lib/cyrus/bin/imapd
Feb 27 15:51:29 domain cyrus/imap[29578]: executed
Feb 27 15:57:02 domain cyrus/imap[29487]: accepted connection
Feb 27 15:57:02 domain cyrus/master[29811]: about to exec /usr/lib/cyrus/bin/imapd
Feb 27 15:57:02 domain cyrus/imap[29487]: login: domain.de [127.0.1.1] testuser plaintext User logged in
Feb 27 15:57:02 domain cyrus/imap[29487]: seen_db: user testuser opened /var/lib/cyrus/user/a/testuser.seen
Feb 27 15:57:02 domain cyrus/imap[29487]: open: user testuser opened INBOX
Feb 27 15:57:02 domain cyrus/imap[29487]: open: user testuser opened INBOX
Feb 27 15:57:02 domain cyrus/imap[29811]: executed
Feb 27 15:57:04 domain cyrus/imap[29487]: open: user testuser opened INBOX
Feb 27 15:57:04 domain cyrus/imap[29487]: open: user testuser opened INBOX
Feb 27 15:57:04 domain cyrus/imap[29575]: accepted connection
Feb 27 15:57:04 domain cyrus/imap[29575]: login: domain.de [127.0.1.1] testuser plaintext User logged in
Feb 27 15:57:04 domain cyrus/imap[29575]: seen_db: user testuser opened /var/lib/cyrus/user/a/testuser.seen
Feb 27 15:57:04 domain cyrus/imap[29575]: open: user testuser opened INBOX
Feb 27 15:57:04 domain last message repeated 3 times
Feb 27 15:57:06 domain cyrus/imap[29576]: accepted connection
Feb 27 15:57:06 domain cyrus/imap[29576]: login: domain.de [127.0.1.1] testuser plaintext User logged in
Feb 27 15:57:06 domain cyrus/imap[29576]: seen_db: user testuser opened /var/lib/cyrus/user/a/testuser.seen
Feb 27 15:57:06 domain cyrus/imap[29576]: open: user testuser opened INBOX


wenn noch andere Logs gebraucht werden, sagt bitte Bescheid.
-luh

maikthiel
27.02.08, 18:00
wenn noch andere Logs gebraucht werden, sagt bitte Bescheid.
-luh

Hallo,

da es sich um einen SMTP-Fehler handeln soll, wären die Logs von Exim eine sinnvolle Ergänzung zu /var/log/mail. Zu finden sind die Dinger unter "/var/log/exim4" mit den Namen "mainlog", "rejectlog" und "paniclog", falls du es nicht anders konfiguriert hast.

Ciao sagt Maik

luh
01.03.08, 15:22
mainlog & rejectlog:


2008-03-01 15:18:27 H=domain.com (domain.de) [ip] F=<veit@domain.de> rejected RCPT <email@web.de>: relay not permitted


keine paniclog vorhanden.

EDIT:


2008-03-01 15:45:14 1JULRl-00063O-UE == testuser@localhost routing defer (-51): retry time not rea\
ched
2008-03-01 15:45:14 End queue run: pid=1440
2008-03-01 15:48:10 H=domain.com (domain.de) [195.34.183.18] F=<testuser@domain.de> rejected RCPT \
<freakytestuser@web.de>: relay not permitted
2008-03-01 15:54:26 H=fmmailgate01.web.de [217.72.192.221] F=<freakytestuser@web.de> temporarily r\
ejected RCPT <user@domain.de>: transport "cyrus_delivery" not found in local_user router
2008-03-01 15:57:40 H=fmmailgate03.web.de [217.72.192.234] F=<freakytestuser@web.de> temporarily r\
ejected RCPT <testuser@domain.de>: transport "cyrus_delivery" not found in local_user router

Roger Wilco
01.03.08, 16:23
2008-03-01 15:57:40 H=fmmailgate03.web.de [217.72.192.234] F=<freakytestuser@web.de> temporarily rejected RCPT <testuser@domain.de>: transport "cyrus_delivery" not found in local_user router
Ist doch recht eindeutig, die Fehlermeldung...

luh
01.03.08, 16:47
das war nen typo in der einen datei, das ist gefixt. der fehler ist damit weg, was jetzt noch ist beim senden:



2008-03-01 16:43:02 H=domain.com (domain.de) [195.34.183.18] F=<user@domain.de> rejected RCPT <email@web.de>: relay not permitted


warum relay not permitted? was bedeutet das?

emails werden immernoch nicht zugestellt.
-luh

Roger Wilco
01.03.08, 17:22
Dein MTA will sich nicht als Open Relay missbrauchen lassen, was völlig ok ist. Wenn du E-Mails an einen anderen Server schicken möchtest, musst du dich vorher authentifizieren oder dich auf dem gleichen Rechner wie dein MTA befinden.

luh
02.03.08, 14:01
verstehe ich dich richtig. ich muss mich auf dem eigenen server einloggen um davon emails zu verschicken?

Ich habe mich an die HowTo's von http://www.debian-administration.org/articles/280 und http://venthur.de/Linux/Exim4SMTP-AUTHHOWTO gehalten. mit dem kleinen unterschied dass ich passwd.client auch bediene. wenn ich allerdings swaks bediene kommt folgendes raus:



# swaks -a -s domain.de
To: email@web.de
Username: -----
Password: -----
=== Trying domain.de:25...
=== Connected to domain.de.
<- 220 domain.de ESMTP Exim 4.63 Sun, 02 Mar 2008 13:58:13 +0100
-> EHLO domain.de
<- 250-domain.de Hello domain.de [127.0.1.1]
<- 250-SIZE 52428800
<- 250-PIPELINING
<- 250 HELP
*** No acceptable authentication types available
-> QUIT
<- 221 domain.de closing connection
=== Connection closed with remote host.


/var/log/exim4/mainlog sagt dazu:


2008-03-02 13:57:58 exim 4.63 daemon started: pid=17485, -q30m, listening for SMTP on port 25 (IPv6 and IPv4)
2008-03-02 13:57:58 Start queue run: pid=17486
2008-03-02 13:57:58 End queue run: pid=17486


Was muss bei der konfiguration anders geamcht werden?

cane
02.03.08, 15:51
verstehe ich dich richtig. ich muss mich auf dem eigenen server einloggen um davon emails zu verschicken?

Woher soll der Server denn sonst wissen "das Du es bist"? ;)
Auf localhost kann man es unter Umständen weglassen aber generell muss das sein...


<- 220 domain.de ESMTP Exim 4.63 Sun, 02 Mar 2008 13:58:13 +0100
-> EHLO domain.de
<- 250-domain.de Hello domain.de [127.0.1.1]
<- 250-SIZE 52428800
<- 250-PIPELINING
<- 250 HELP
*** No acceptable authentication types available

Schau dir das gleiche einfach auf einem anderen Server an:


cane@reality:~$ telnet smtp.1und1.de 25
Trying 212.227.15.167...
Connected to smtp.1und1.de.
Escape character is '^]'.
220 smtp.1und1.de (mrelayeu4) Welcome to Nemesis ESMTP server
EHLO cane.mastercane.de
250-mrelayeu4.kundenserver.de pleased to meet you
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
[...]


--> Dein Mailserver bietet dir gar keine Authentifizierung an behaupte ich mal...

Such dir doch am besten eine komplette Anleitung und halte dich daran, das geht schneller :)

mfg
cane

luh
02.03.08, 18:36
Ein erster Schritt. Woohoo! Emails lassen sich versenden. Ich habe einiges umgestellt, aber ich glaube der entscheidende Schritt war dass ich in eGroupware smtp server auf localhost umgestellt habe.

Jetzt bleibt immernoch das Problem mit eingehenden Emails.

aus der rejectlog


transport "cyrus_delivery" not found in local_user router


hat dazu jemand eine idee?

luh
02.03.08, 19:04
Sorry, das braucht ihr vermutlich ja auch.



# cat /etc/exim4/conf.d/transport/30_exim4-config_cyrus_delivery
cyrus_delivery:
# transport_filter = /usr/bin/tr -d '\000'
driver = lmtp
socket = /var/run/cyrus/socket/lmtp
batch_max = 20
user = Debian-exim
command = "/usr/sbin/cyrdeliver -l -m user.$local_part"
group = mail


Rechte auf lmtp socket ist mit user Debian-exim und gruppe mail gesetzt. Per chown und chgrp. Gibt es einen grossen unterschied zu dpkg-statsoverride?



# cat /etc/exim4/conf.d/router/900_exim4-config_local_user

### router/900_exim4-config_local_user
#################################

# This router matches local user mailboxes. If the router fails, the error
# message is "Unknown user".

local_user:
debug_print = "R: local_user for $local_part@$domain"
driver = accept
domains = +local_domains
check_local_user
local_parts = ! root
# transport = LOCAL_DELIVERY
transport = cyrus_delivery
cannot_route_message = Unknown user


und aus /etc/exim4/update-exim4.conf.conf


dc_localdelivery='cyrus_delivery'


-luh

luh
03.03.08, 17:42
und wie so oft leider beantworte ich hier selber das problem. hoffe das kann jemand weiterem mal helfen.

warum auch immer hat exim die dateien nicht ausgelesen, ud somit fehlte die definition von cyrus_delivery in der benutzen config (exim -bV). also die definition direkt in /etc/exim4/exim4.conf.template reingeschrieben. neugestartet und ein anschliessendes:
cp /var/lib/exim4/config.autogenerated /etc/exim4/exim4.conf ; /etc/init.d/exim4 restart ; exim4 -bV
Das sollte ausgeben /etc/exim4/exim4.conf

uff - endlich

Roger Wilco
03.03.08, 19:14
warum auch immer hat exim die dateien nicht ausgelesen, ud somit fehlte die definition von cyrus_delivery in der benutzen config (exim -bV).
Richtig, das liegt am (meiner Meinung nach für Anfänger etwas suboptimalen) Konfigurationssystem für Exim unter Debian Linux.
Manchmal hilft es übrigens auch, das vorhandene README (http://pkg-exim4.alioth.debian.org/README/README.Debian.etch.html#id221974) der Distribution zu lesen...