PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mail-Server einrichten unklar



Shutdown
29.10.04, 13:13
Hi Leute,

ich überlege mir seit einiger Zeit schon, wie es eigentlich funktioniert, mit Linux einen Mailserver einzurichten, der folgendes kann:

eMails von einem Server im Netz abholen (für mehrere Accounts), diese dann bei sich zwischenspeichern und an lokale Clients (zB Netscape Mail oder Outlook auf PCs im Intranet) zu schicken wenn diese sich anmelden.
Das ganze soll auch in anderer Richtung funktionieren, also ein lokaler Client schickt ne Mail an den lokalen Server, der die Mail dann an einen Server im Internet weitergibt.

Was brauche ich dazu alles bzw wie funktioniert sowas?
Reichen da sendmail und fetchmail? :confused:

Shutdown

pibi
29.10.04, 13:21
Was brauche ich dazu alles bzw wie funktioniert sowas?
Reichen da sendmail und fetchmail?Genau eine solche Loesung habe ich laufen. Allerdings fehlt noch der eigentliche "Mailserver", also derjenige, mit dem sich die lokalen Clients "unterhalten". Ich nehme dafuer den qpopper (nur POP3), alternativ gibt es noch Cyrus (POP3/IMAP) und aehnliches. Und dann natuerlich noch eine Kombination aus SpamAssassin und Bogofilter fuer Abwehr von Spam;-)

Gruss Pit.

Liberace
29.10.04, 14:08
Anstelle das die Clients sich die Mails von dem Mailserver "abholen" bietet sich doch ganz klar IMAP an.

Shutdown
29.10.04, 15:32
Wie funktioniert IMAP denn und wie richte ich es ein?
Und wenn ich es so mache wie ich es vorhatte, was brauche ich dann wirklich noch auf dem Server?

Shutdown

Shutdown
29.10.04, 18:58
Ich habe mir das ganze nochmal durchüberlegt und bin zu folgendem Ergebnis gelangt:

Wenn ich einen Mailserver realisieren will, muss ich das ganze folgendermaßen machen: (Korrigiert mich wenn ich falsch bin)

eMail Provider im Internet <--sendmail-- Lokaler Mailserver <--Client--
eMail Provider im Internet --fetchmail--> Lokaler Mailserver --???-->Client

So werden die eMails doch übertragen, oder? Das ganze ist jetzt nur mit den Programmen die auf dem Server laufen gezeichnet, aber mehr muss ich ja eigentlich nicht beachten.
Was kann ich da einsetzen wo "???" steht? Keine Ahnung was da passiert :confused:

Shutdown

Liberace
29.10.04, 19:12
Folgendes Howto fand ich sehr gut. Ist zwar fuer Gentoo gedacht, sollte sich aber auf andere Distributionen adaptieren lassen.
http://forums.gentoo.org/viewtopic.php?t=56633

Blade
29.10.04, 20:31
Hi Shutdown,
damit die Clients die Mails beim Server abholen können brauchst Du eigentlich nur noch POP3/IMAP ... dann sollte es funzen. Nimm zunächst mal erst popper für POP3, keine Einrichtungs-Probleme.

Du kannst sendmail auch so konfigurieren, dass es Mails von extern direkt annimmt und verschickt. ;) Nur mit dem Verschicken wirst Du dann leider die alten Probleme bekommen, dass Dich Mail-Server ablehnen, wenn Du keine feste IP hast sondern eine Dialin-Verbindung.

Shutdown
29.10.04, 20:41
Ich will ja keinen riesen Mailserver im Internet hochziehen, sondern nur eMail im Intranet vereinfachen ;)
Also das fehlende Glied für mich ist popper, damit ist das ganze dann theoretisch klar.
Werde das mal wenn ich n Nachmittag Zeit hab durchtesten.
DANKE!

Shutdown

Blade
29.10.04, 20:50
Na prima, popper oder qpopper sollte Dir dann wirklich reichen, so läuft es auch bei mir ;)

pibi
29.10.04, 21:05
Ich will ja keinen riesen Mailserver im Internet hochziehen, sondern nur eMail im Intranet vereinfachen ;)Das ist schon klar und genauso habe ich es auch verstanden. Der Empfang von Mail ist relativ trivial und schnell einzurichten.

Schwieriger wird es beim Versenden. Wenn Du hier einen kleinen Fehler machst, schaffst Du ein offenes Relay, welches Spammer zum Versenden ihres Muells verwenden koennen. Und sie werden es tun, ich musste leider selber diese Erfahrung machen. Schnell etwas ausprobiert, es kam ein Anruf von einem Kollegen, wir haben ein bisschen geplaudert, dann bin ich ins Bett und habe nicht mehr an das gedacht, was ich eigentlich angefangen hatte. Und ja, zwei bis drei Bier waren auch noch im Spiel.

Nach getaner Arbeit solltest Du Deine Installation unbedingt hier (http://www.abuse.net/relay.html) testen.

Gruss Pit.

Shutdown
30.10.04, 15:00
Schwieriger wird es beim Versenden. Wenn Du hier einen kleinen Fehler machst, schaffst Du ein offenes Relay, welches Spammer zum Versenden ihres Muells verwenden koennen. Und sie werden es tun, ich musste leider selber diese Erfahrung machen. Schnell etwas ausprobiert, es kam ein Anruf von einem Kollegen, wir haben ein bisschen geplaudert, dann bin ich ins Bett und habe nicht mehr an das gedacht, was ich eigentlich angefangen hatte. Und ja, zwei bis drei Bier waren auch noch im Spiel.

Wie kann ich da ein offenes Relay erzeugen? Ich werd sendmail ja nicht fürs Internet zugänglich machen, ich werd den Port nur nach aussen benutzen...
Oder meinst du was anderes? :confused:

Shutdown

Shutdown
30.10.04, 18:08
Also Leute das ganze ist doch wirklich ziemlich kompliziert wenn man es noch nie gemacht hat...
Kennt einer von euch vielleicht einen Link zu einem wirklich guten HowTo in dem sendmail, fetchmail und qpopper eingesetzt werden?
Wäre wirklich Klasse wenn ich sowas hätte :rolleyes:

Shutdown

Shutdown
01.11.04, 12:00
Ich habe mich nun doch gegen sendmail entschieden und will erstmal qmail einrichten, da ich ja nur einen kleinen privaten Mailserver im LAN haben will.
Aber das Kompilieren von qmail klappt schon mal nicht:


$ make setup check
( cat warn-auto.sh; \
echo CC=\'`head -1 conf-cc`\'; \
echo LD=\'`head -1 conf-ld`\' \
) > auto-ccld.sh
cat auto-ccld.sh make-load.sh > make-load
chmod 755 make-load
cat auto-ccld.sh find-systype.sh > find-systype
chmod 755 find-systype
./find-systype > systype
( cat warn-auto.sh; ./make-load "`cat systype`" ) > load
chmod 755 load
cat auto-ccld.sh make-compile.sh > make-compile
chmod 755 make-compile
( cat warn-auto.sh; ./make-compile "`cat systype`" ) > \
compile
chmod 755 compile
( ( ./compile tryvfork.c && ./load tryvfork ) >/dev/null \
2>&1 \
&& cat fork.h2 || cat fork.h1 ) > fork.h
rm -f tryvfork.o tryvfork
./compile qmail-local.c
qmail-local.c: In function `main':
qmail-local.c:450: warning: return type of `main' is not `int'
./compile qmail.c
./compile quote.c
./compile now.c
./compile gfrom.c
./compile myctime.c
./compile slurpclose.c
cat auto-ccld.sh make-makelib.sh > make-makelib
chmod 755 make-makelib
( cat warn-auto.sh; ./make-makelib "`cat systype`" ) > \
makelib
chmod 755 makelib
./compile case_diffb.c
./compile case_diffs.c
./compile case_lowerb.c
./compile case_lowers.c
./compile case_starts.c
./makelib case.a case_diffb.o case_diffs.o case_lowerb.o \
case_lowers.o case_starts.o
./compile getln.c
./compile getln2.c
./makelib getln.a getln.o getln2.o
./compile subgetopt.c
./compile sgetopt.c
./makelib getopt.a subgetopt.o sgetopt.o
./compile sig_alarm.c
( ( ./compile trysgprm.c && ./load trysgprm ) >/dev/null \
2>&1 \
&& echo \#define HASSIGPROCMASK 1 || exit 0 ) > hassgprm.h
rm -f trysgprm.o trysgprm
./compile sig_block.c
( ( ./compile trysgact.c && ./load trysgact ) >/dev/null \
2>&1 \
&& echo \#define HASSIGACTION 1 || exit 0 ) > hassgact.h
rm -f trysgact.o trysgact
./compile sig_catch.c
./compile sig_pause.c
./compile sig_pipe.c
./compile sig_child.c
./compile sig_hup.c
./compile sig_term.c
./compile sig_bug.c
./compile sig_misc.c
./makelib sig.a sig_alarm.o sig_block.o sig_catch.o \
sig_pause.o sig_pipe.o sig_child.o sig_hup.o sig_term.o \
sig_bug.o sig_misc.o
./compile open_append.c
./compile open_excl.c
./compile open_read.c
./compile open_trunc.c
./compile open_write.c
./makelib open.a open_append.o open_excl.o open_read.o \
open_trunc.o open_write.o
./compile seek_cur.c
./compile seek_end.c
./compile seek_set.c
./compile seek_trunc.c
./makelib seek.a seek_cur.o seek_end.o seek_set.o \
seek_trunc.o
( ( ./compile tryflock.c && ./load tryflock ) >/dev/null \
2>&1 \
&& echo \#define HASFLOCK 1 || exit 0 ) > hasflock.h
rm -f tryflock.o tryflock
./compile lock_ex.c
./compile lock_exnb.c
./compile lock_un.c
./makelib lock.a lock_ex.o lock_exnb.o lock_un.o
./compile fd_copy.c
./compile fd_move.c
./makelib fd.a fd_copy.o fd_move.o
( ( ./compile trywaitp.c && ./load trywaitp ) >/dev/null \
2>&1 \
&& echo \#define HASWAITPID 1 || exit 0 ) > haswaitp.h
rm -f trywaitp.o trywaitp
./compile wait_pid.c
./compile wait_nohang.c
./makelib wait.a wait_pid.o wait_nohang.o
./compile env.c
./compile envread.c
./makelib env.a env.o envread.o
./compile stralloc_eady.c
./compile stralloc_pend.c
./compile stralloc_copy.c
./compile stralloc_opys.c
./compile stralloc_opyb.c
./compile stralloc_cat.c
./compile stralloc_cats.c
./compile stralloc_catb.c
./compile stralloc_arts.c
./makelib stralloc.a stralloc_eady.o stralloc_pend.o \
stralloc_copy.o stralloc_opys.o stralloc_opyb.o \
stralloc_cat.o stralloc_cats.o stralloc_catb.o \
stralloc_arts.o
./compile alloc.c
./compile alloc_re.c
./makelib alloc.a alloc.o alloc_re.o
./compile strerr_sys.c
./compile strerr_die.c
./makelib strerr.a strerr_sys.o strerr_die.o
./compile substdio.c
./compile substdi.c
./compile substdo.c
./compile subfderr.c
./compile subfdout.c
./compile subfdouts.c
./compile subfdin.c
./compile subfdins.c
./compile substdio_copy.c
./makelib substdio.a substdio.o substdi.o substdo.o \
subfderr.o subfdout.o subfdouts.o subfdin.o subfdins.o \
substdio_copy.o
./compile error.c
./compile error_str.c
./compile error_temp.c
./makelib error.a error.o error_str.o error_temp.o
./compile str_len.c
./compile str_diff.c
./compile str_diffn.c
./compile str_cpy.c
./compile str_chr.c
./compile str_rchr.c
./compile str_start.c
./compile byte_chr.c
./compile byte_rchr.c
./compile byte_diff.c
./compile byte_copy.c
./compile byte_cr.c
./compile byte_zero.c
./makelib str.a str_len.o str_diff.o str_diffn.o str_cpy.o \
str_chr.o str_rchr.o str_start.o byte_chr.o byte_rchr.o \
byte_diff.o byte_copy.o byte_cr.o byte_zero.o
./compile fmt_str.c
./compile fmt_strn.c
./compile fmt_uint.c
./compile fmt_uint0.c
./compile fmt_ulong.c
./compile scan_ulong.c
./compile scan_8long.c
./makelib fs.a fmt_str.o fmt_strn.o fmt_uint.o fmt_uint0.o \
fmt_ulong.o scan_ulong.o scan_8long.o
./compile datetime.c
./compile datetime_un.c
./makelib datetime.a datetime.o datetime_un.o
./compile auto-str.c
auto-str.c:9: warning: conflicting types for built-in function `puts'
auto-str.c: In function `main':
auto-str.c:17: warning: return type of `main' is not `int'
./load auto-str substdio.a error.a str.a
substdio.a(substdo.o)(.text+0x47): In function `allwrite':
: undefined reference to `errno'
collect2: ld returned 1 exit status
make: *** [auto-str] Error 1

Weiss jemand was da falsch ist? Ich bin nach folgender Anleitung vorgegangen: http://linuxtipps.sourceforge.net/show.php/de/tutorial/8.htm

Wäre klasse wenn ich das noch hinkriegen würde ;)

Shutdown