PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Sendmail und mehrere eMail accounts



Loop
26.06.04, 14:38
Hallo, wir haben folgende Situation:
10 verschiedene externe eMail Adressen und auf Linux sind zusätzlich die lokalen eingerichtet (Benutzer@lokaledomain). Wie bring ich nun Sendmail dazu, wenn BenutzerX@lokaledomain eine Mail verschickt, den externen smtp Server und die jeweiligen Anmeldedaten zu verwenden (der smtp Server ist zwar jedesmail der gleiche (mailto.t-dsl-business.de) aber es werden für jeden existierenden account die jeweiligen Anmeldedaten benötigt um versenden zu können).

Bin für jede Hilfe dankbar . . .

Chris

Blade
27.06.04, 12:17
Hi,

verstehe Dein Problem nicht ganz, schick dich alle ausgehenden Mails einfach an einen immer gleichen smtp-server und trage dafür die Teilnehmerdaten ein. Sendmail trägt doch die korrekte Rückantwortadressen in Header der mail ein. ... oder überschreibt der smtp-server die Header-Einträge?

Grüße Blade

Loop
27.06.04, 14:58
Hi, das Problem ist dass der SMTP Server eine authentifizierung für jeden existierenden Mail account verlangt und ich nicht weiß wie ich sendmail beibringen soll, wie er diese für jeden verschiedenen Account mitschickt.

Chris

Blade
27.06.04, 15:23
Halt, präzisier doch mal das Problem. Hast Du das Problem mit der Auth... beim Mail-Versand oder beim Mail-Abholen? Beim Mail-Versand dürfte es dem SMTP-Server doch egal sein was Du versendest, hauptsache Du hast Dich 1 Mal korrekt geauthet.
Grüße Blade :confused:

Loop
01.07.04, 13:14
Hi, hab das jetzt mal ausprobiert.
@Blade
Du hast recht, das geht. Es reicht wenn man sich über einen Account beim provider via SMTP authentifiziert (ich dachte der Mailserver schreibt dann die Absenderaddresse um, was allerdings nicht der Fall ist)

Nun gibt es noch ein weiteres Problem, ich weiß ehrlich gesagt noch nicht einmal, wie ich Sendmail dazu bringe, sich auch nur bei einem Account anzumelden. Ich hab nun in die Sendmail.mc
folgenden Befehl eingefügt: FEATURE(`authinfo', `hash /etc/mail/authinfo.db')dnl

und folgende Datei /etc/mail/authinfo mit dem inhalt erzeugt:

AuthInfo:mailto.t-dsl-business.de "U:user" "P:secret" "M:PLAIN"

anschließend noch makemap hash authinfo < authinfo
eine authinfo.db erzeugt.
müsste doch eigentlich reichen oder?
Was mir aufgefallen ist, sobald ich die Datei mit m4 in eine sendmail.cf umwandle finde ich den Eintrag SMART_HOST = (name smtp provider) nicht mehr, ist das wegen diesem FEATURE authinfo?

Dann noch was:
ich möchte natürlich auch im Netz eigene Private eMail Adressen haben, die nicht beim externen Mailserver abgeliefert werden sollen. Reicht es da wenn ich nur die Dateien genericstable und virtusertable editiere und sie dann mit makemap hash datei < datei
umwandle (access.db ist natürlich vorhanden)?
Werden dann nicht auch die Adressen umgewandelt, die vom lokalen Benutzer zum lokalen Benutzer gesendet werden.

Weiß nicht, ob ich meine Anliegen konkret genug ausgedrückt habe, falls nicht bitte nochmal rückfragen

Chris

Blade
01.07.04, 18:42
Hi Loop,

du musst die lokale Domain einfach bei sendmail als lokal zu behandelnde Domain eintragen, mehr nicht. Die genericstable ist datu da, die ausgehenden Mail-Adressen im Head korrekt zu setzen. Sodann kein User eine falsche Header-Mail-Adresse eintragen.

Grüße Blade

Loop
02.07.04, 11:18
So, Sendmail versendet, meldet sich korrekt beim SMTP Server an und maskiert die eMail adressend entsprechend. Nun gibts aber noch Probleme mit diesem fetchmail, die Datei .fetchmailrc im /root/ Verzeichnis hat folgenden Eintrag:
#
poll pop.t-dsl-business.de protocol POP3 user meinname@meine-domain password secret to chris here
#
So wenn ich nun fetchmail starte kommt an er Konsole folgende meldung:

3 Nachrichten für meinname@meine-domain.de bei pop.t-dsl-business.de (58556 Oktetts).
Nachricht meinname@meine-domain@pop.t-dsl-business.de:1 von 3 wird gelesen (9211 Oktetts) .fetchmail: SMTP-Verbindung zu localhost fehlgeschlagen
fetchmail: SMTP-Transaktion-Fehler beim Abholen von pop.t-dsl-business.de
fetchmail: Abfragestatus=10 (SMTP)



Anschließend habe ich mir eine log datei mit dem Befehl
etchmail -a -v >>/var/log/fetchmail 2>&1 & erstellt.

der Inhalt von /var/log/fetchmail sieht folgendermaßen aus:

fetchmail: 6.2.5 fragt ab pop.t-dsl-business.de (Protokoll POP3) um Fr 02 Jul 2004 11:52:05 CEST: Abfrage gestartet
fetchmail: POP3< +OK Microsoft Exchange 2000 POP3 server version 6.0.6389.0 (mailc0907.dte2k.de) ready.
fetchmail: POP3> CAPA
fetchmail: POP3< +OK Capability list follows
fetchmail: POP3< TOP
fetchmail: POP3< USER
fetchmail: POP3< PIPELINING
fetchmail: POP3< EXPIRE NEVER
fetchmail: POP3< UIDL
fetchmail: POP3< .
fetchmail: POP3> USER meinname@meine-domain
fetchmail: POP3< +OK
fetchmail: POP3> PASS *
fetchmail: POP3< +OK User successfully logged on.
fetchmail: POP3> STAT
fetchmail: POP3< +OK 3 58556
3 Nachrichten für meinname@meine-domain bei pop.t-dsl-business.de (58556 Oktetts).
fetchmail: POP3> LIST 1
fetchmail: POP3< +OK 1 9211
fetchmail: POP3> RETR 1
fetchmail: POP3< +OK
Nachricht meinname@meine-domain.de@pop.t-dsl-business.de:1 von 3 wird gelesen (9211 Oktetts)
fetchmail: SMTP-Verbindung zu localhost fehlgeschlagen
fetchmail: POP3> QUIT
fetchmail: POP3< --48578545836_boundary
fetchmail: SMTP-Transaktion-Fehler beim Abholen von pop.t-dsl-business.de
fetchmail: 6.2.5 fragt ab pop.t-dsl-business.de (Protokoll POP3) um Fr 02 Jul 2004 11:52:10 CEST: Abfrage beendet
fetchmail: Abfragestatus=10 (SMTP)
fetchmail: normaler Beendigung, Status 10



Also, wie ich das sehe funktioniert der Login beim Provider, mich sört in der ausger der Log-Datei die Zeile "SMTP-Verbindung zu localhost fehlgeschlagen", Der Linuxrechner heißt idefix.loop.net (Lokaler Name) und nicht localhost, kann das damit etwas zu tun haben das der fetchmail meinen Sendmail nicht findet (oder benützt fetchmail den Sendmail überhaupt noch? wahrscheinlich nicht, ich glaube der stellt alles doch direkt in die lokalen /var/spool/mail/USER Verzeichnisse)

Danke . . ..

Chris

LKH
02.07.04, 11:37
Hi,

fetchmail gibt die Mails normalerweise über Port 25 (SMTP) weiter. Dein sendmail scheint die aber nicht zu wollen. Trag mal in der .fetchmailrc noch "--mda /usr/bin/procmail" ein, dann übergibt fetchmail die Mails an procmail (das defaultmäßig installiert sein sollte).

Hoffe es hilft,

LKH

Loop
02.07.04, 12:10
@LKH
Danke für die schnelle Antwort
Soll ich diese Zeile direkt im Anschluss an die erste Zeile hängen oder am Anfang oder in einer neuen Zeile

Danke .. .

Chris

LKH
02.07.04, 12:18
Hi,

imho ist das völlig wurscht, wo du den Eintrag in die Zeile einträgst.

LKH

Loop
02.07.04, 16:22
Hey, euch vielen Dank (Blade und LKH)
habe in der .fetchmailrc nun hinter ....password secret mda "/usr/bin/procmail -d LOKALERUSER"
ergänzt und das ganze funzt wunderbar.
Bin vorerst wunschlos glücklich


Chris

Loop
03.07.04, 15:09
Hallo nochmal,

tja irgendwie funzt das doch noch nicht so ganz wie ich das wollte. Als ich von meinem Netzwerk aus an externe eMails gesendet habe, habe ich diese an meinen eigenen hotmail Acccount gesendet und das mit der Adressenumschreibung hat auch wunderbar mit der in der von mir erstellten genericstable funktioniert. Sende ich nun an Web.de oder T-Online Adressen, dann bleiben diese in der Queue und gehen nicht nach aussen. In der maillog stehen dann Einträge wie:

Jul 3 15:32:35 idefix sendmail[2789]: i63DWZQ1002789: from=<chris@idefix.loop.net>, size=1855, class=0, nrcpts=1, msgid=<200407031332.i63DWZQ1002789@idefix.loop.net>, proto=ESMTP, daemon=MTA, relay=[192.168.1.5]
Jul 3 15:32:36 idefix sendmail[2791]: i63DWZQ1002789: to=<horst.schweigerl@web.de>, ctladdr=<chris@idefix.loop.net> (500/500), delay=00:00:01, xdelay=00:00:01, mailer=esmtp, pri=31855, relay=mx-ha02.web.de. [217.72.192.188], dsn=4.0.0, stat=Deferred: Connection reset by mx-ha02.web.de.
Jul 3 15:32:38 idefix pop3-login: Login: chris [192.168.1.5]


Die Zeile: stat=Deferred: Connection reset by mx-ha02.web.de.
macht mir Angst, heißt das es ist kein relaying erlaubt, kann ich mir irgendwie nicht vorstellen. Sendmail agiert doch hier als Klient und schreibt die Absenderadresse korrekt um, ergo müsste es doch keinen Unterschied machen, ob ich mit Outlook direkt über den Telekom SMTP Server versende, oder zuerste lokal an Sendmail und dieser dann zur Telekom.
Andererseits würde mich interessieren, Ob mein Sendmail hier überhaupt an den T-SMTP Server zustellt, ich kann nämlich nach wie vor keinen Eintrag wie SMART_HOST in der Sendmail.cf finden. Wie krieg ich raus, ob mein Sendmail hier überhaupt als Client agiert, also diesen Eintrag in der /etc/mail/authinfo berücksichtigt?
Kann wohl auch nichts mit der /etc/mail/access zu tun haben, oder? Ich habe da mal
192.168.1.5 : RELAY
reingeschrieben, wobei ich nicht weiß, wo der unterschied zwischen RELAY und OK besteht.

Vielen Dank nochmals

PS: klärt mich auf, wenn ich hier Müll geschrieben habe, aber so gut kenn ich mich auch noch nicht aus

Blade
03.07.04, 15:42
Hi,

keine Panik, das ist ein altes Problem. Du hast sendmail als MTA konfiguriert und nun schickt sendmail die ausgehenden Mails direkt ins Netz :-) ... passt doch. Nun gibt es aber immer mehr Server, die von Dialin-Servern wie Deinem keine Mails mehr aus Spam-Schutz-Gründen empfangen, deshalb ... die deferred-Meldung.

Trag bei sendmail einfach ein, dass Mails an @web.de und @t-online.de nicht direkt, sondern über denT-Online-SMTP-Server übertragen werden. Aber Achtung, der normale T-Online-Server schreibt die Mail-Adesse im Header um. Der RELAY-SMTP-SERVER, der das nicht macht kostet monatlich Geld. Such Dir dafür am besten einen anderen bekannten SMTP-Server. Wenn weitere Sever Mails ablehnen trägst Du sie eben auch in die Liste ein.

Grüße Blade

Loop
04.07.04, 11:18
Hi, also genau dass mein Sendmail versucht, die Mails direkt ins Netz zu stellen wollte ich nicht. Ich möchte doch nur dass er sie an einen bereits existierenden SMTP Server (SMART_HOST) von der Telekom sendet. Ich habe doch eMail accounts. Ich kann doch schließlich auch über Outlook direkt an diesen senden. Nun möchte ich doch bloß, dass Sendmail als client arbeitet und an alle an ihn gehenden Mails (mit korrekt umgeschriebener Sender-Adresse) an den Server pop.t-dsl-business.de weiterleitet. Und das Hauptproblem ist, dass dieser eine SMTP authentifizierung verlangt.

Ich habe eine Anleitung für mein Problem gefunden, die funzt aber nicht.
(Link: http://lists.debian.org/debian-user-german/2002/09/msg00400.html )

Ich weiß nun warum der SMART_HOST Eintrag nicht in der Sendmail.cf zu finden war. (wenn man ein "dnl" vor dem "define (SMART_HOST = ......) stehen hat .........

aber das ganze funzt trotzdem nicht, nun versucht Sendmail zwar, die Mails bei der Telekom abzuliefern, scheitert aber bei der Authentifizierung und in der Maillog steht:
-------------------------------------------------

Jul 4 12:10:28 idefix sendmail[4759]: i64AAR0g004759: from=<chris@idefix.loop.net>, size=516, class=0, nrcpts=1, msgid=<200407041010.i64AAR0g004759@idefix.loop.net>, proto=ESMTP, daemon=MTA, relay=[192.168.1.5]
Jul 4 12:10:28 idefix sendmail[4761]: i64AAR0g004759: AUTH=client, available mechanisms do not fulfill requirements
Jul 4 12:10:28 idefix sendmail[4761]: AUTH=client, relay=mailto.t-dsl-business.de., temporary failure, connection abort
Jul 4 12:10:28 idefix sendmail[4761]: i64AAR0g004759: to=<yepigo@hotmail.com>, ctladdr=<chris@idefix.loop.net> (500/500), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=30516, relay=mailto.t-dsl-business.de. [62.156.147.75], dsn=4.0.0, stat=Deferred: Temporary AUTH failure

--------------------------------------------------------------------
habe das mit diesem feature authinfo wieder weggelassen und entsprechend der Anleitung (Link weiter oben) gemacht und diese Zeile:
AuthInfo:smtp.t-dsl-business.de "U:BENUTZERNAME" "P:PASSWORT"
in die /etc/mail/access gesetzt (anschließend makemap hash access.db < access generiert) habs auch schon mit:
AuthInfo:smtp.t-dsl-business.de "U:BENUTZERNAME" "P:PASSWORT" "M:PLAIN"
versucht. Leider ohne Erfolg, bitte helft mir, muss doch irgendwie lösbar sein oder?

Chris

Blade
04.07.04, 19:52
Hi,

ich denke, Du setzt Debian ein ... ich nutze SuSE 8.2/9.0 und hab das ganze über YAST eingerichtet --> und funzt :cool:

... denke aber, dass das bei der auth-Anmeldung von Dir eingestellte Protokoll net stimmt ... AUTH=client, available mechanisms do not fulfill requirements

Du kannst ja alles direkt an der Konsole bei manueller Einwahl mit dem Server testen ... der spricht dann mit Dir! :D

Loop
07.07.04, 13:31
Nochmals danke an alle, die mir geholfen haben. Nun wird endlich der Telekom SMTP Server als Relay benutzt, schuld daran war die Authentifizierungsmethode,
die Datei /etc/mail/authinfo muss hier wie folgt Aufgebaut sein:

AuthInfo:mailto.t-dsl-business.de "U:USERNAME" "I:USERNAME" "P:Passwort" "R:mailto.t-dsl-business.de" "M:LOGIN"

letztendlich war bei mir bei M: "PLAIN" eingetragen, ob I und R wirklich wichtig sind weiß ich nicht, ich rühr sie jedefalls nicht mehr an (NEVER TOUCH A RUNNING SYSTEM!)

@Blade
Ich habs nach deinem letzten Posting mal mit SuSE (8.2) ausprobiert, auch ohne Erfolg, obwohl man da alles bequem per Yast2 einstellen kann. Jedoch ist SuSE auch nicht mein Fall, da mir die Pfade von einigen Konfigurationsfiles ziemlich herstellerspezifisch erscheinen (Was macht eine sendmail.cf im /etc/ Verzeichnis?, die gehört in /etc/mail/ . . . . .
trotzdem nochmals danke für deine Hilfe

Jetzt hätt ich da nochmal eine Frage wegen diesen Cronjobs (gehört jetzt zwar nicht in diese Forum aber ich probiers trotzdem mal)

Die Datei /etc/crontab hat bei mir folgende Einträge (die letzten beiden hab ich eingefügt):

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
0,10,20,30,40,50 0-23 * * * root sendmail -q
0,10,20,30,40,50 0-23 * * * root /usr/bin/fetchmail

demnach müsste die SendmailQueue alle 10 Minuten geleert werden und fetchmail alle 10 Minuten die /root/.fetchmailrc abarbeiten, in der /var/log/cron steht dann alle 10 Minuten:

Jul 7 13:50:00 idefix CROND[2817]: (root) CMD (/usr/bin/fetchmail)
Jul 7 13:50:00 idefix CROND[2820]: (root) CMD (sendmail -q)
Jul 7 13:50:00 idefix CROND[2822]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 13:55:00 idefix CROND[2927]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 14:00:00 idefix CROND[2957]: (root) CMD (/usr/bin/fetchmail)
Jul 7 14:00:00 idefix CROND[2959]: (root) CMD (sendmail -q)
Jul 7 14:00:00 idefix CROND[2961]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 14:01:01 idefix CROND[2968]: (root) CMD (run-parts /etc/cron.hourly)
Jul 7 14:05:00 idefix CROND[3020]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 14:10:00 idefix CROND[3026]: (root) CMD (/usr/bin/fetchmail)
Jul 7 14:10:00 idefix CROND[3030]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 14:10:01 idefix CROND[3028]: (root) CMD (sendmail -q)
Jul 7 14:15:00 idefix CROND[3115]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 14:20:00 idefix CROND[3120]: (root) CMD (/usr/bin/fetchmail)
Jul 7 14:20:00 idefix CROND[3123]: (root) CMD (sendmail -q)
Jul 7 14:20:00 idefix CROND[3125]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)
Jul 7 14:25:00 idefix CROND[3128]: (root) CMD (/usr/bin/mrtg /etc/mrtg/mrtg.cfg)

anscheined werden diese Kommandos ausgeführt, nun holt fetchmail aber keine remote Mails ab, da meine lokalen Postfächer leer bleiben. Rufe ich hingegen fetchmail manuell auf, dann prüft dieser die Remote Postfächer und holt die Mails ab und stellt sie den lokalen Usern in die jeweiligen Postfächer. Was stimmt an meiner Crontab nicht??

Danke


Chris

Azathoth
07.07.04, 15:36
kann es sein dass fetchmail nicht die richtige config datei ausließt wenn es per cron (als root ?) gestartet wird?

änder mal den fetchmail aufruf in der crontab so ab dass du explizit die gewünschte .fetchmailrc angibts.

Blade
07.07.04, 17:51
zunächst würde ich mal den fetchmail und sendmail Job zeitversetzt um ein paar Minuten testen mit der Option -a bei fetchmail. Ich, weiß ist nicht nötig ... trotzdem ein Versuch ist es wert.