[postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Postfix, QMail, Sendmail, Dovecot, Cyrus, Courier, Anti-Spam
sebstey
Posts: 16
Joined: 2003-05-06 18:10

[postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 17:37

Hallo.

Ich habe auf meinem Suse 9.2 System versucht ne neue Maillösung aufzubauen, und möchte das auch gerne vervöllständigen.

Dabei habe ich mich auf die Anleitung aus der c't Ausgabe 17 diesen Jahres gestützt.

Vor allem soll der Server nun die mails annehmen, die mir geschickt werden. Momentan landen davon keine in meiner Mailbox. Was allerdings ankommt, sind die mails, die fetchmail von meinem web.de account für mich abholt. Fetchmail habe ich ja bereits in yast mitgeteilt, dass er meinem nutzer auf dem system die mails zustellen soll.

cyrus wirft allerdings etliche Probleme auf.
Ich habe cyrus ein Passwort zugewiesen und den Authentifizierungsmodus(sasl_mech_list:) auf PLAIN gestellt.

Jetzt der Versuch mich per

Code: Select all

cyradm -u cyrus localhost
anzumelden.
Gebe ich das richtige Passwort ein, erhalte ich folgenden Fehler:

Code: Select all

:/var/log # cyradm -u cyrus localhost
IMAP Password: 
               at /usr/lib/perl5/vendor_perl/5.8.5/i586-linux-thread-multi/Cyrus/IMAP/Admin.pm line 118
cyradm: cannot authenticate to server with  as cyrus
Beim falschen Passwort erhalte ich keine Ausgabe und muss cyradm per STRG+C verlassen.

Die Verbindung bekomme ich nur hin über ein

Code: Select all

cyradm localhost
und mit dem root-Passwort.

Das Erstellen einer Mailbox wird mir so quitiert (mailuser heißt ein neuer Systemaccount, an den die mails beispielsweise gehen könnten):

Code: Select all

localhost> cm user.mailuser
createmailbox: Invalid mailbox name.
Anscheinend vorhandene Mailboxen:

Code: Select all

localhost> lm
INBOX (Marked HasNoChildren)
Leider habe ich die nicht angelegt.

Ich kriege einfach keine mailbox erstellt...
Bin ich überhaupt auf dem richtigen Weg?
Könnt ihr mir sagen, wo mein Fehler liegt?

Cyrus ist mir persönlich nicht wichtig, aber Sieve scheint ja nur da ordentlich zu laufen, oder? Ich würde mich über eine simple Möglichkeit zum Mails sortieren freuen, ist aber kein Muss.

Mit dem Wissen, dass mails, die von fetchmail kommen, ordentlich weitergegeben werden: Kann man darauf schließen, dass Postfix ordnungsgemäßg läuft und auch schon die emails annimmt, die auf meine Domains laufen?

Es sind viele Fragen, ja, aber es müssen ja irgendwie die Informationen kommen.
Ich würd mich freuen, auch über Antworten auf Teilfragen.

Vielen Dank!
Sebastian Stey

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 17:55

ich möchte mich mal direkt noch ergänzen.
Der courier-imap läuft noch. Gleichzeitig mit cyrus. Das muss doch Komplikationen geben, oder nicht?
Ich habe allerdings die Sorge, wenn ich courier-imap jetzt stoppe, dass die Probleme mit cyrus nicht aufhören, ich dafür aber garkeine mails mehr bekomme?

Oder liegen oben genannte Fehlermeldungen an courier?

Danke

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 18:58

courier war schonmal der erste Schritt.
Mit cyradm kann ich mich schonmal verbinden.

Aber der Druck den mailserver heute noch fertig zu bekommen hilft mir nicht unbedingt.
Ich allein bin überfordert mit der main.cf vom postfix.
Sollte jemand einen Verweis auf eine entsprechende Config/Anleitung zu einem Mailserver parat haben, der mich mit einem authentifizierten Client mails versenden lässt und mails für meine Domains annimmt, kann ihn mir bitte schreiben.

Aber in erster Linie braucht sich niemand mehr die Mühe machen auf die ersten Fragen zu antworten.

Danke!

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 19:54

Wie es aussieht nimmt Postfix immerhin schonmal die mails für die Domain an, die gleichzeitig hostname des Servers ist. Zugestellt werden die mails aber nicht zu /var/spool/imap/user/benutzer. Für die anderen Domains werden die mails weiterhin abgewiesen:

Code: Select all

Die Nachricht konnte nicht gesendet werden, da einer der Empfänger vom Server nicht akzeptiert wurde. Die nicht akzeptierte E-Mail-Adresse ist "mail@domain.de". Betreff '', Konto: 'domain.de', Server: 'hostname.de', Protokoll: SMTP, Serverantwort: '554 <mail@domain.de>: Relay access denied', Port: 25, Secure (SSL): Nein, Serverfehler: 554, Fehlernummer: 0x800CCC79
Ohne die main.cf könnt ihr wahrscheinlich nichts anfangen, aber die ist ellenlang...
Gibt es nicht eine weitestgehend meiner Situation angepasste Beispielkonfiguration, die ich nurnoch in Feinheiten bearbeiten muss?

Ich gehe in Richtung Verzweiflung :-

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by Roger Wilco » 2005-08-11 19:58

sebstey wrote:Ohne die main.cf könnt ihr wahrscheinlich nichts anfangen, aber die ist ellenlang...

Code: Select all

postconf -n
Ausserdem würde die Cyrus-Konfiguration und evtl. die procmailrc, falls du Procmail einsetzt, helfen.
cyradm greift auf den IMAP-Server zu, d.h. wenn Courier läuft greift cyradm auf Courier zu, was nicht funktionieren kann.
Alternativ kannst du Cyrus auf einem anderen Port laufen lassen und mit cyradm --port ... darauf zugreifen.

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 20:17

danke

Code: Select all

:~ # postconf -n
alias_maps = hash:/etc/aliases
biff = no
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
defer_transports = 
disable_dns_lookups = no
html_directory = /usr/share/doc/packages/postfix/html
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command = 
mailbox_size_limit = 0
mailbox_transport = lmtp:unix:/var/lib/imap/socket/lmtp
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains = no
masquerade_exceptions = root
message_size_limit = 10240000
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = domain1.de
myhostname = domain2.de
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relayhost = 
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = no
smtp_use_tls = no
smtpd_client_restrictions = 
smtpd_helo_required = no
smtpd_helo_restrictions = 
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_sasl_auth_enable = no
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_use_tls = no
strict_rfc821_envelopes = no
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550

Code: Select all

cat cyrus.conf 
# standard standalone server implementation

START {
  # do not delete this entry!
  recover       cmd="ctl_cyrusdb -r"

  # this is only necessary if using idled for IMAP IDLE
  idled         cmd="idled"
}

# UNIX sockets start with a slash and are put into /var/lib/imap/socket
SERVICES {
  # add or remove based on preferences
  imap          cmd="imapd" listen="imap" prefork=0
#  imaps                cmd="imapd -s" listen="imaps" prefork=0
  pop3          cmd="pop3d" listen="pop3" prefork=0
#  pop3s                cmd="pop3d -s" listen="pop3s" prefork=0
  sieve         cmd="timsieved" listen="sieve" prefork=0

  # at least one LMTP is required for delivery
#  lmtp         cmd="lmtpd" listen="lmtp" prefork=0
  lmtpunix      cmd="lmtpd" listen="/var/lib/imap/socket/lmtp" prefork=0

  # this is only necessary if using notifications
#  notify       cmd="notifyd" listen="/var/lib/imap/socket/notify" proto="udp" prefork=1
}

EVENTS {
  # this is required
  checkpoint    cmd="ctl_cyrusdb -c" period=30

  # this is only necessary if using duplicate delivery suppression
  delprune      cmd="cyr_expire -E 3" at=0400

  # this is only necessary if caching TLS sessions
  tlsprune      cmd="tls_prune" at=0400

  # Uncomment the next entry, if you want to automatically remove
  # old messages of EVERY user.
  # This example calls ipurge every 60 minutes and ipurge will delete
  # ALL messages older then 30 days.
  # enter 'man 8 ipurge' for more details

  # cleanup      cmd="ipurge -d 30 -f" period=60
}
Von mir gewollten Sinn haben beide Domains im Grunde keinen.

procmail setze ich nicht ein.

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 20:53

Code: Select all

smtp_sasl_auth_enable = yes
smtp_use_tls = yes
smtpd_sasl_auth_enable = yes
smtpd_use_tls = yes
Muss natürlich schonmal sein. Wie ich das übersehen konnte...

Die emails gehen jetzt ohne Fehlermeldung raus, wenn ich smtp-auth aktiviere. Leider kommen weder Mails auf meinem noch auf anderen Servern an.

/var/log/mails
Aug 11 20:42:48 hostname postfix/smtp[29519]: fatal: specify a password table via the `smtp_sasl_password_maps' configuration parameter
Aug 11 20:42:49 hostname postfix/master[28552]: warning: process /usr/lib/postfix/smtp pid 29519 exit status 1
Aug 11 20:42:49 hostname postfix/master[28552]: warning: /usr/lib/postfix/smtp: bad command startup -- throttling
Wie sollte ich mir die Datei zu dem genannten Parameter am besten zusammenbauen?

#############
Edit:
von den vier Einträgen oben die beiden mit smtp_ auf no gesetzt, die mit smtpd_ auf yes gelassen. Damit sind die Fehlermeldungen anscheinend weg.
Und die mails nach außen kommen an.

Jetzt fehlen noch die eingehenden

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by Roger Wilco » 2005-08-11 22:06

sebstey wrote:von den vier Einträgen oben die beiden mit smtp_ auf no gesetzt, die mit smtpd_ auf yes gelassen. Damit sind die Fehlermeldungen anscheinend weg.
Einträge mit smtp_ sind für den SMTP-Client, smtpd_ für den Server. Wenn du smtp_sasl_auth_enable aktivierst, versucht sich Postfix an jedem SMTP-Server zu authentifizieren (dafür wird auch die Password Map benötigt), also auch an denen, zu denen du Mails schickst.
sebstey wrote:Jetzt fehlen noch die eingehenden
Das Problem an Cyrus ist, dass du kein direktes Mapping von E-Mail-Adresse zu IMAP-Benutzer hast.
Lies mal http://delouw.ch/linux/Postfix-Cyrus-We ... onfig.html.
Da wird zwar MySQL benutzt, aber du siehst auch, wie das Mapping der Benutzernamen gemacht werden kann. Ausserdem kannst du, je nach Bedarf, die ganzen Maps auch mit einem Hash (hash:/...) hinbekommen.

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-11 22:48

Mit viel Fummelei passt es jetzt soweit. Das größte Problem war wohl, dass mir viele Funktionsweisen völlig unklar waren (und immernoch im Nebel liegen)...


Aber ein Problem ist mir noch geblieben:
An mydomain/myhostname (also domain1.de) nimmt postfix die mails an.
An den virtual_alias_domains nicht.

Code: Select all

alias_maps = hash:/etc/aliases
biff = no
canonical_maps = hash:/etc/postfix/canonical
command_directory = /usr/sbin
config_directory = /etc/postfix
daemon_directory = /usr/lib/postfix
debug_peer_level = 2
defer_transports = 
disable_dns_lookups = no
html_directory = /usr/share/doc/packages/postfix/html
inet_interfaces = all
mail_owner = postfix
mail_spool_directory = /var/mail
mailbox_command = 
mailbox_size_limit = 0
mailbox_transport = cyrus
mailq_path = /usr/bin/mailq
manpage_directory = /usr/share/man
masquerade_classes = envelope_sender, header_sender, header_recipient
masquerade_domains = no
masquerade_exceptions = root
message_size_limit = 10240000
mydestination = $myhostname, localhost.$mydomain, localhost
mydomain = domain1.de
myhostname = domain1.de
myorigin = $myhostname
newaliases_path = /usr/bin/newaliases
queue_directory = /var/spool/postfix
readme_directory = /usr/share/doc/packages/postfix/README_FILES
relayhost = 
relocated_maps = hash:/etc/postfix/relocated
sample_directory = /usr/share/doc/packages/postfix/samples
sender_canonical_maps = hash:/etc/postfix/sender_canonical
sendmail_path = /usr/sbin/sendmail
setgid_group = maildrop
smtp_sasl_auth_enable = no
smtp_use_tls = no
smtpd_client_restrictions = 
smtpd_helo_required = no
smtpd_helo_restrictions = 
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sender_restrictions = hash:/etc/postfix/access
smtpd_use_tls = yes
strict_rfc821_envelopes = no
transport_maps = hash:/etc/postfix/transport
unknown_local_recipient_reject_code = 550
virtual_alias_domains = domain2.de,domain3.de
Aug 11 22:42:41 hostname postfix/smtpd[30028]: TLS engine: do need at least RSA _or_ DSA cert/key data
Aug 11 22:42:41 hostname postfix/smtpd[30028]: connect from unknown[62.27.34.9]
Aug 11 22:42:41 hostname postfix/smtpd[30028]: NOQUEUE: reject: RCPT from unknown[62.27.34.9]: 550 <mail@domain2.de>: Recipient address rejected: User unknown in virtual alias table; from=<apache@www3.klamm.de> to=<mail@domain2.de> proto=ESMTP helo=<www3.klamm.de>
Aug 11 22:42:41 hostname postfix/smtpd[30028]: disconnect from unknown[62.27.34.9]
Oder wo kann ich die weiteren Domains der "virtual alias table" hinzufügen?

Danke!

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by Roger Wilco » 2005-08-11 23:33

sebstey wrote:Oder wo kann ich die weiteren Domains der "virtual alias table" hinzufügen?
In mydestination.

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-12 00:05

Ich bin jetzt schon zu großem Dank verpflichtet!

Im System habe ich den Account web1p2, den ich per imap abrufe.
Um jetzt nicht für 5 Adressen auch 5 Accounts anzulegen, will ich alle mails über web1p2 abrufen.

Es existiert also schonmal user.web1p2 in cyrus. (direkt abgerufen)
Dann habe ich noch die accounts user.mail, user.newsletter und user.foren alle auf die selbe Weise angelegt.
Ebenfalls auf die selbe Weise haben ich bei all diesen cyrus-Konten per

Code: Select all

sam user.account web1p2 lrswipcda
web1p2 alle Rechte verschafft.
Thunderbird hat alle Ordner empfangen. Ich gehe deshalb davon aus, dass soweit alles erfolgreich war.

Emails werden vom Server aber nur an web1p2@domain und mail@domain angenommen.

newsletter@domain und foren@domain bringen folgende Fehler in /var/log/mail:
Aug 11 23:45:44 hostname postfix/smtpd[30253]: connect from unknown[62.27.35.5]
Aug 11 23:45:44 hostname postfix/smtpd[30253]: NOQUEUE: reject: RCPT from unknown[62.27.35.5]: 550 <newsletter@domain>: Recipient address rejected: User unknown in local recipient table; from=<apache@www6.klamm.de> to=<newsletter@domain> proto=ESMTP helo=<www6.klamm.de>
Aug 11 23:45:44 hostname postfix/smtpd[30253]: disconnect from unknown[62.27.35.5]
Wieso macht der trotz gleicher Einrichtung Unterschiede zwischen mail@ und newsletter@?

Danke

Roger Wilco
Administrator
Administrator
Posts: 6001
Joined: 2004-05-23 12:53

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by Roger Wilco » 2005-08-12 00:22

sebstey wrote:Wieso macht der trotz gleicher Einrichtung Unterschiede zwischen mail@ und newsletter@?
Vermutlich weil "mail" ein Alias in /etc/mail/aliases (oder /etc/aliases) ist.

sebstey
Posts: 16
Joined: 2003-05-06 18:10

Re: [postfix,cyrus] Keine Mailannahme. fetchmail funktioniert

Post by sebstey » 2005-08-12 10:19

"mail" stand nicht in der /etc/aliases drin, aber die anderen hinzuzufügen hat geholfen.

Danke!