Brauche Hilfe- Mailserver will nicht

Debian macht sich hervorragend als Web- und Mailserver. Schau auch in den " Tipps und Tricks"-Bereich.
Antworten
Belgarad
Beiträge: 749
Registriert: 12.07.2002 02:00:44

Brauche Hilfe- Mailserver will nicht

Beitrag von Belgarad » 20.10.2002 20:54:33

trotz vielem lesen und fragen bekomme ich es nicht hin. habe faq's gelesen, im forum gesurft und kann die kapitel im advanced linux networking bald auswendig.

fuer alle die weiterlesen:
erst mal herlichen dank und zum anderen eine entschludigung fuer die "vielen" config-files die ich angehangen habe. meine hoffnug ist jedoch, dass jemand einen fehler findet, ich bin erstmal mit meinen latein am ende.


mein ziel:
habe eine domain mailbox (also einen pop3 account) auf de alles an @kosmos.all ankommt.
beispiel: test1@kosmos.all, belgarad@kosmos.all, etc.
nun will ich diesen pop3 account bei meinem provider pollen, und die mails den usern ueber einen lokalen mailserver zustellen. bei den usern handel es sich um linux und windows user, daher soll beim internen mailserver die post mit imap verwaltet werden. d.h. egal mit welchem imap-mailclient der user arbeitet (linux oder windows, manchmal auch im wechsel), die mail soll auf dem lokalen mail-server bleiben.

umgebung:
derzeitig habe ich folgende programme installiert:
fetchmail, procmail, exim und uw-imap.
und
mutt, evolution, balsa, kmail (also clients zum testen) (sowie pegaus und outlook unter windows)

ansonsten noch xinetd


exim hatte ich erst durch postfix ersetzt (war die empfehlung hier im board), doch damit bin ich nicht zurechtgekommen (nichtmal mehr mit mutt konnte ich mails ueber spooldateien schicken).
das soll aber nicht heissen, dass es exim sein muss - hauptsache es geht.

was geht:
-mit mutt (ich nehme an via exim) mails an lokale user verschicken.: z.b. von belgarad an test1.
dies scheint ueber mailsspooldatein zu funktionieren (/var/mail/belgarad etc.)

-fetchmail holt mails von dem pop3 account ab, aber lauft dann auf einen procmailfehler.
ich habe hier zum test einen windows-mailserver und darauf einen pop3 account den ich benutze.

was nicht geht:
-kann keine mails via smtp schicken (z.b. in balsa), ich muss mailsspooldatein im mbox format verwenden. (via smtp kommt zwar kein fehler - nur es kommen auch keine mails an, auch nicht an lokale benutzer)
-kann keine mails via pop3 oder imap abholen.

hier eine detailiertere fehlermeldung von fetchmail wenn ich es von hand starte:

Code: Alles auswählen

fetchmail: POP3> RETR 3
fetchmail: POP3< +OK Here it comes...
reading message test1@192.168.1.40:3 of 3 (1481 octets)
About to rewrite Return-path: <nothere@test-online.com>
Rewritten version is Return-path: <nothere@test-online.com>

About to rewrite From: "Nothere" <nothere@test-online.com>
Rewritten version is From: "Nothere" <nothere@test-online.com>

About to rewrite To: <belgarad@kosmos.all>,
        <test1@kosmos.all>,
        <test2@kosmos.all>
Rewritten version is To: <belgarad@kosmos.all>,
        <test1@kosmos.all>,
        <test2@kosmos.all>

fetchmail: about to deliver with: /usr/bin/procmail -t -a /$EXTENSION
#**************************procmail: Couldn't chdir to "/var/run/fetchmail/Mail"
 not flushed
fetchmail: POP3> QUIT
++++

so und jetzt weiss ich nicht mehr weiter.

+++++

.. dass ist vielleicht noch wichtig. aus administartionsgruenden will ich zentrale dateien fuer fetchmail und procmail einsetzen. daher habe ich :
eine /etc/procmailrc und einen /etc/fetchmailrc und _keine_ solchen dateien in den den homedirs.


hier ein paar konfigurationsdateien:

Code: Alles auswählen

   I    /etc/fetchmailrc                                                  Row 1    Col 1    8:21  Ctrl-K H for help
# Configuration created Sat Oct 19 14:25:06 2002 by fetchmailconf
set postmaster "belgarad"
set bouncemail
set no spambounce
set properties ""
poll testmercury via 192.168.1.40 with proto POP3
   user 'test1' there with password 'test1'
   mda "/usr/bin/procmail -t -a /$EXTENSION"
   options keep

Code: Alles auswählen


    I    /etc/procmailrc                                                   Row 1    Col 1    8:22  Ctrl-K H for help
# Please check if all the paths in PATH are reachable, remove the ones that
# are not.
PATH=/usr/bin:/bin:/usr/local/bin
MAILDIR=$HOME/Mail      # You'd better make sure it exists
# Existiert bisher nicht
DEFAULT=$MAILDIR/mbox
# Existiert bisher nicht
LOGFILE=$MAILDIR/from
LOCKFILE=$HOME/.lockmail
################
## DEBUGSTUFF ##
################
LOG=""
VERBOSE=yes
LOGABSTRACT=all
#

# :0                            # Anything from test@test.com
# * ^From.*test@test.com

# test1                         # will go to $MAILDIR/test1

:0                              #
* ^To.test1@kosmos.all
test1                           # will go to $MAILDIR/...

:0                              #
* ^To.belgarad@kosmos.all
belgarad                        # will go to $MAILDIR/....

:0                              # Default Setting
* ^To.*@*
belgarad                        #

# Anything that has not been delivered by now will go to $DEFAULT
# using LOCKFILE=$DEFAULT$LOCKEXT


xinetd (auszugsweise)

Code: Alles auswählen


   IW   /etc/xinetd.conf                                                  Row 62   Col 1    8:23  Ctrl-K H for help

service smtp
{
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = root
       server          = /usr/sbin/tcpd
       server_args     = /usr/sbin/exim
}

service pop-2
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/tcpd
        server_args     = /usr/sbin/ipop2d
}

service pop-3
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/tcpd
        server_args     = /usr/sbin/ipop3d
}


service imap2
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/tcpd
        server_args     = /usr/sbin/imapd
}

service imap3
{
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        server          = /usr/sbin/tcpd
        server_args     = /usr/sbin/imapd
}


exim.conf (ist standard d.h. fragen von debconf beantwortet - internet using smarthost)

Code: Alles auswählen

qualify_domain = kosmos.all
local_domains = localhost:kosmos.all:sonne.kosmos.all
local_domains_include_host = true
local_domains_include_host_literals = true
never_users = root
host_lookup = *
host_accept_relay = 127.0.0.1 : ::::1
host_auth_accept_relay = *
trusted_users = mail
smtp_verify = false
gecos_pattern = ^([^,:]*)
gecos_name = $1
smtp_accept_queue_per_connection = 100
freeze_tell_mailmaster = true

received_header_text = "Received: \
         ${if def:sender_rcvhost {from ${sender_rcvhost}\n\t}\
         {${if def:sender_ident {from ${sender_ident} }}\
         ${if def:sender_helo_name {(helo=${sender_helo_name})\n\t}}}}\
         by ${primary_hostname} \
         ${if def:received_protocol {with ${received_protocol}}} \
         (Exim ${version_number} #${compile_number} (Debian))\n\t\
         id ${message_id}\
         ${if def:received_for {\n\tfor <$received_for>}}"


receiver_try_verify = true

end

######################################################################
#                      TRANSPORTS CONFIGURATION                      #
######################################################################
#                       ORDER DOES NOT MATTER                        #
#     Only one appropriate transport is called for each delivery.    #
######################################################################

local_delivery:
  driver = appendfile
  group = mail
  mode = 0660
  mode_fail_narrower = false
  envelope_to_add = true
  return_path_add = true
  file = /var/spool/mail/${local_part}


address_pipe:
  driver = pipe
  path = /usr/bin:/bin:/usr/local/bin
  return_output

address_file:
  driver = appendfile
  envelope_to_add = true
  return_path_add = true

address_directory:
  driver = appendfile
  no_from_hack
  prefix = ""
  suffix = ""
# maildir_format


address_reply:
  driver = autoreply


procmail_pipe:
  driver = pipe
  command = "/usr/bin/procmail"
  return_path_add
  delivery_date_add
  envelope_to_add
# check_string = "From "
# escape_string = ">From "
  suffix = ""


remote_smtp:
  driver = smtp

end
######################################################################
#                      DIRECTORS CONFIGURATION                       #
#             Specifies how local addresses are handled              #
######################################################################

real_local:
  prefix = real-
  driver = localuser
  transport = local_delivery

system_aliases:
  driver = aliasfile
  file_transport = address_file
  pipe_transport = address_pipe
  file = /etc/aliases
  search_type = lsearch
# user = list
# Uncomment the above line if you are running smartlist


userforward:
  driver = forwardfile
  file_transport = address_file
  pipe_transport = address_pipe
  reply_transport = address_reply
  no_verify
  check_ancestor
  check_local_user
  file = .forward
  modemask = 002
  filter


procmail:
  driver = localuser
  transport = procmail_pipe
  require_files = ${local_part}:+${home}:+${home}/.procmailrc:+/usr/bin/procm
  no_verify


localuser:
  driver = localuser
  transport = local_delivery

end

######################################################################
#                      ROUTERS CONFIGURATION                         #
#            Specifies how remote addresses are handled              #
######################################################################
smarthost:
  driver = domainlist
  transport = remote_smtp
  route_list = "* 192.168.1.40 bydns_a"

end

######################################################################
#                      RETRY CONFIGURATION                           #
######################################################################

*                      *           F,2h,15m; G,16h,2h,1.5; F,4d,8h

end


######################################################################
#                      REWRITE CONFIGURATION                         #
######################################################################

*@kosmos.all    ${lookup{$1}lsearch{/etc/email-addresses}\
                                                {$value}fail} frFs

end
etwas gefunden?
p.s. der mailserver sollte schon vor 7 tagen produktiv sein -grrr-

ivo
Beiträge: 629
Registriert: 29.04.2002 12:41:22
Wohnort: Lichtenstein/Sa.
Kontaktdaten:

Beitrag von ivo » 21.10.2002 09:13:07

So, jetzt will ich dir mal ein paar Anregungen schreiben, die mir so durch den Kopf gehen. Dein Problem ist zu komplex, um es hier einfach so zu lösen:

Deine Art Mailbox heißt multidrop. Es kommen also in einem POP3-Postfach E-Mails für verschiedene User an. Das ist schlecht. Kannst du nicht für jeden Benutzer ein POP3-Postfach bei deinem Domain-Provider anlegen? Das würde die Sache sehr vereinfachen.

Zweitens: Du solltest exim erstmal so konfigurieren, daß du auch Mails nach drausen verschicken kannst. Dazu kann ich dir für exim keine Hilfe bieten. Ich nehme postfix.

Drittens: Wenn das mit den mehreren POP3-Mailboxen bim Provider nicht klappen solte, dann nimm getmail (http://www.qcc.sk.ca/~charlesc/software/getmail-2.0/). Das kann (so steht es in der Doku) mit mulitdrop Mailboxen von Haus aus umgehen. Ich selbst nehme fetchmail -- habe aber auch keine multidrop Boxen.

Fazit: Wenn du dir Möglichkeit hast, dann lege beim Provider mehrere Boxen an. Das erspart dir viel Ärger. Wenn du wirklich für jeden Benutzer eine POP3-Box beim Provider hast, dann ist die Sache kein Problem und du brauchst nicht solche procmail-Verrenkungen machen.

Ansonsten versuche mal getmail. Vielleicht löst das dein Problem.

HTH

tschau
*iv

Benutzeravatar
pdreker
Beiträge: 8298
Registriert: 29.07.2002 21:53:30
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Nürnberg

Beitrag von pdreker » 21.10.2002 16:38:41

Ich kann mich meinem Vorredner nur anschliessen (ausser den getmail Teil, die Software kenne ich nicht...)

Ich wuerde auch empfehlen fuer jeden User einen eigenen POP3 Account beim Provider einzurichten. Die User brauchen davon aber gar nichts zu wissen, weil die POP3 Accounts automatisch vom Server gepollt werden. Damit eliminierst Du schoneinmal das unangenehme Multidrop aus der Konfig. Einfach ein systemweites
fetchmail einrichten, dass in regelemaessigen Abstaenden die Accounts pollt. Jeder User auf dem Server hat dann eine Standard .procmailrc (kann man einfach durch verlinken erzeugen), die per .forward Datei genutzt wird. Procmail schiebt die Sachen dann in ein Verzeichnis im Home Directory (z.B. imapmail). Von dort kann man die Mail ohne weitere Config mit dem uw-imapd abholen (im Client noch Mailprefix oder Namespace auf imapmail/ setzen).

Exim ist in dieser Konfig nicht notwendig (wenigstens keine groessere Konfiguration), weil man den nur zum Versenden benoetigt. Die User koennen genauso gut in ihrem Mailclient einfach direkt den SMTP Server des provider angeben. SMTP Server auf nicht statischen Adressen oder auf Dial-Ups aller Art machen zu viel Aerger...

Patrick
Definitely not a bot...
Jabber: pdreker@debianforum.de

Belgarad
Beiträge: 749
Registriert: 12.07.2002 02:00:44

Beitrag von Belgarad » 21.10.2002 17:55:56

...Dein Problem ist zu komplex, um es hier einfach so zu lösen...
Das glaube ich gerne.

Deine Art Mailbox heißt multidrop. Es kommen also in einem POP3-Postfach E-Mails für verschiedene User an. Das ist schlecht. Kannst du nicht für jeden Benutzer ein POP3-Postfach bei deinem Domain-Provider anlegen? Das würde die Sache sehr vereinfachen.
Das ist leider keine option.
Du solltest exim erstmal so konfigurieren, daß du auch Mails nach drausen verschicken kannst. Dazu kann ich dir für exim keine Hilfe bieten. Ich nehme postfix.
Das ist im augenblick das problem. ich bin zwar weitergekommen (der fehler lag in der xinetd configuartion), doch exim stellt zur zeit nur lokal zu, der smarthost wird fuer externe adressaten nicht benutzt. fehler:

Code: Alles auswählen

2002-10-21 18:04:45 verify failed for SMTP recipient debian@test.com from <belgarad@kosmos.all> H=(there) [192.168.1.10] U=belgarad
2002-10-21 18:04:45 unexpected disconnection while reading SMTP command from (there) [192.168.1.10]
2002-10-21 18:08:01 Start queue run: pid=3982
2002-10-21 18:08:01 183d7C-0000vW-00 Message is frozen
2002-10-21 18:08:01 End queue run: pid=3982
Das sieht doch schon ganz gut aus. ich habe wahrscheinlich irgendwo noch eine "sperre" uebersehen.
ich denke hier in der eximconfig:

Code: Alles auswählen

# Send all mail to a smarthost

smarthost:
  driver = domainlist
#  driver = manualroute
  transport = remote_smtp

# route_list = "* 192.168.1.40 bydns_a"
  route_list = * 192.168.1.40
end
die option manuelroute habe ich im exim faq gefunden, aber es geht nicht weil exim die option manuelroute nicht kennt. (hier ist mir auch nicht klar, wo solche treiber definiert sind/werden)
Wenn das mit den mehreren POP3-Mailboxen bim Provider nicht klappen solte, dann nimm getmail (http://www.qcc.sk.ca/~charlesc/software/getmail-2.0/). Das kann (so steht es in der Doku) mit mulitdrop Mailboxen von Haus aus umgehen. Ich selbst nehme fetchmail -- habe aber auch keine multidrop Boxen.
Habe mir getmail angeschaut und es sieht vielversprechend aus. da ich allerdings schon einiges installiert/konfiguriert habe, waere das der letzte schritt.
ich denke, das mein problem mit fetchmail/procmail "relativ" leicht zu loesen ist, da ja die meldung von procmail kommt, dass ein parameter fehlt.

nur ist mir zur zeit noch nicht klar, wie beispiesweise fetchmail die mail an procmail uebergibt.
wenn also jemand mal eine fetchmailrc posten koennte, inder procmail verwendet wird, kaeme ich wahrscheinlich weiter.

Exim ist in dieser Konfig nicht notwendig (wenigstens keine groessere Konfiguration), weil man den nur zum Versenden benoetigt. Die User koennen genauso gut in ihrem Mailclient einfach direkt den SMTP Server des provider angeben. SMTP Server auf nicht statischen Adressen oder auf Dial-Ups aller Art machen zu viel Aerger...
Da die internet verbindung nicht permanent zur verfuegung steht, soll ja ein interner mailserver (wie exim) her.

imap funktioniert mittlerweile auch (uw-imapd), nur wird dann immer das gesamte homeverzeichnis des users angezeigt. (auch bei den windows usern mit outlook).
es scheint so, als wenn die inbox aus /varmail/$USER genommen wird, und die folder im root des homedirs das user liegen.
kann man da uw-imapd nicht mitteilen, nur fuer die folder nur ein bestimmtes verzeichnis (incl. unterverzeichnis) zu verwenden?

Belgarad
Beiträge: 749
Registriert: 12.07.2002 02:00:44

Beitrag von Belgarad » 21.10.2002 21:48:40

so nach ca. 3 tagen rumkonfigurieren gehts jetzt schonmal soweit dass ich einen grundstock habe.

allerdings habe ich wieder postfix installiert - ist doch einfacher zu konf. als exim.

nur procmail macht noch aerger.

aber da mache ich wohl besser einen neuen thread auf.

Antworten