Linux 15.036 Themen, 107.107 Beiträge

Sendmail

Mr.Tom / 11 Antworten / Baumansicht Nickles

Hey Leute,

ich habe ein Problem mit Sendmail. Und zwar, das Empfangen mit fetchmail funktioniert, auch das Verschicken und Empfangen im lokalen Netz funktioniert. Nur das Versenden von emails nach draußen geht nicht. Nach dem Ausführen von "sendmail -q" kommt die diese Nachricht unten an den Client.

The original message was received at Sat, 3 Jun 2000 21:47:00 +0200
from thomas.moeschel.de [192.168.0.10]

----- The following addresses had permanent fatal errors -----
tomson@giga4u.de

----- Transcript of session follows -----
... while talking to mx.freenet.de:
>>> DATA
tom@proxy.moeschel.de
554 tomson@giga4u.de... Service unavailable

"thomas.moeschel.de" ist mein client mit dem ich die mail verschicke, "mx.freenet.de" ist der Mailserver von meinem Provider, "tom@proxy.moeschel.de" ist die email-Adresse vom Benuter des clients und "tomso@giga4u.de" ist die Mailadresse vom Empfänger. Nach dem Ausführen von "sendmail -q" kommt in "/var/log/messages" die Meldung:

bei Antwort benachrichtigen
AxelE Mr.Tom „Sendmail“
Optionen

muß dein sendmail eigentlich über den provider liefern? dies habe ich meiner SuSE 6.4 schnell abgewöhnt. Ich lasse direkt senden.

Allerdings ist die Konfiguration etwas aufwendiger:
1) DNS-Server einrichten und bei ip-up nicht die dns-server des Providers eintragen lassen ! (editiere ip-up und deaktiviere, was die /resolv.conf verändert.)
2) konfiguriere in /etc/rc.config.d/sendmail.rc.config:


SENDMAIL_SMARTHOST=""

#
# sendmail assumes the following space-separated host-names to be
# the local host (this must just be used for names differrent to the
# hostname, for e.g. aliases like www.nowhere.com)
#
SENDMAIL_LOCALHOST="localhost dein host"

#
# do not deliver any email locally, but send all email to another host
# this can just be used with another system that has the same users on it
# and you probably also want to set the FROM_HEADER to the other host
#
SENDMAIL_RELAY=""

#
# with what parameters should sendmail be started?
# normal sites use "-bd -q30m -om". if you set SENDMAIL_EXPENSIVE and you
# have a dialup ISDN connection, you probably want to set this to
# "-bd -om" and run "sendmail -q" from your crontab.
#
SENDMAIL_ARGS="-bd -q30m -om"

#
# sendmail will only queue email in /var/spool/mqueue and will only start
# to deliver it if "sendmail -q" is run
#
SENDMAIL_EXPENSIVE="no"

#
# sendmail will not try to canonify hostnames in your email
# so much less DNS-queries are send
# you probably want to enable this on a SENDMAIL_EXPENSIVE system.
# Don't forget to add the local, the mail hub, smart, and mail relay host
# with their IP addresses and the corresponding Full Qualified Domain Names
# to /etc/hosts
#
SENDMAIL_NOCANONIFY="yes"

#
# this option forbids DNS-queries. It requires a well configured
# /etc/hosts as described for SENDMAIL_NOCANONIFY. For most
# people using dial on demand SENDMAIL_NOCANONIFY should work.
#
SENDMAIL_NODNS="no"

#
# let sendmail deliver local mails in defer (postpone) mode.
# This also sets some entries to avoid dialups. A correct
# FQHOSTNAME for the local host is required.
#
SENDMAIL_DIALUP="yes"

#
# these domains can additional to the local domains be changed
# in /etc/mail/genericstable
#
SENDMAIL_GENERICS_DOMAIN=""
#
# From:-Line in email and News postings
#
FROM_HEADER="dein Server"

#
# generate sendmail.cf from parameters in rc.config
#
SENDMAIL_TYPE="yes"

diese einstellungen setzen die dns-anfrage auf aktiv, wenn ein externer rechner angesprochen wird.

dann SuSEconfig laufen lassen. solltest du deine sendmail.cf bereits editiert haben, speichert das script sie in sendmail.SuSEconfig!!!!

als nächstes habe ich mittels webmin alle localen user maskiert (auf die realen externen Konten). (wenn du lieber editierst, dann ist hier die /etc/mail/genericstable gemeint!) Dies muß sein, da einige Dienste eine auflösung deiner Absenderdomain durchführen, teilweise auch die Korrektheit der email-adresse prüfen. (wenn du eine mail an den selben provider sendest, bei dem du auch ein konto hast.)

Als letztes habe ich in der /etc/rc.config den autostart von sendmail unterbunden, damit nicht jede mail gleich losjagt -dies kann man sicher auch durch den obigen eintrag sendmail_expensive erreichen ;-). sendmail wird in periodischen Abständen mittels cron job gestartet.

Das beste an der sache ist, wenn sendmail nur locale mails verschickt, wird nicht einmal eine verbindung zum ISP aufgebaut.(allerdings nur, wenn dein DNS richtig läuft)

so, ich hoffe du hast einige anhaltspunkte.

wenn noch mehr probleme auftauchen, poste mal sendmail -q -v.

Sollte das klappen würde mich mal ne rückinfo freuen.

CU Axel

bei Antwort benachrichtigen
Mr.Tom AxelE „muß dein sendmail eigentlich über den provider liefern? dies habe ich meiner...“
Optionen

Hey Axel,

habe deine Konfiguration noch nicht ausprobiert. Habe aber mal in die Log-Datei "/var/log/mail" reingeschaut und folgende Einträge entdeckt:

proxy sendmail[400]: problem creating smtp socket
proxy sendmail[400]NOQUEUE:SYSERR(root):opendaemonsocket:cannot bind:Address already in use

Das Komische ist, dass das Versenden aber schon mal funktioniert hat. Nur das Abholen der Mail mit einem Client von meinem Mailserver hat nicht funktioniert. Bis ich das packet "pop" aus der Serie "n" mit YAST installiert habe. Dann ging auf einmal das Abholen der Mails mit einem Client, nur dann ging das Versenden der Mails mit Sendmails nicht mehr. Aber ich komme einfach nicht drauf. Habe schon sämtliche Dateien wie /etc/mail/genericstable, virtusertable ... immer und immer wieder angeschaut, bin aber nicht dahinter gekommen. Ich glaube auch nicht, dass es an der Konfiguration von Sendmail liegt, ich glaube eher, dass es mir irgendwas zerbröselt hat. Denn schon beim Hochfahren, also wenn KDE gestartet wird, kommt die oben angegebene Meldung in der Console die ja kurz erscheint bevor KDE ganz gestartet hat. In der Shell kommt keine Fehlermeldung.
Es ist schon ganz schön verzwickt, bin schon fast am verzweifeln.

Vielleicht kannst du mir ja mit dieser Antwort weiterhelfen.

Gruß Mr.Tom

bei Antwort benachrichtigen
AxelE Mr.Tom „Hey Axel,habe deine Konfiguration noch nicht ausprobiert. Habe aber mal in die...“
Optionen

Hallo Tom,

nicht verzagen. Die Fehlermeldungen bezüglich des sendmail starts hatte ich anfangs auch.
Es liegt daran, daß zum einen in der rc.config sendmail als daemon gestartet werden soll
und zum anderen in der inetd.conf als smtp eintrag vorhanden ist:

smtp stream tcp nowait root /usr/sbin/sendmail sendmail -bs

Es geht nur eins !
entweder oder. ich habe mich wegen meiner konfiguration dazu entschlossen, sendmail in der rc.config
abzuschalten. damit bleibt das ding aber bei bedarf durch den eintrag in die inetd.conf bestehen.

nur das abliefern von mails muß dann per hand (sendmail -q (-v)) erfolgen oder per cron-job erledigt werden.

Dies wiederum ist zu empfehlen, wenn du so wie ich vorhast, mails direkt zu versenden. Denn das in meiner
gestern beschriebenen Konfiguration verwendete Verfahren fragt den DNS nach einer aktuellen IP des Empfängers
und würde zu ständigem Verbindungsaufbau führen.

Bezüglich des POP-Zugriffs brauchst du einen Dienst, der sich per eintrag in die inetd.conf dafür zuständig fühlt.

Defaultmäßig in SuSE 6.4 und zu meiner vollsten Zufridenheit agiert hier bei mir popper. Also eintrag für pop-protokoll
in der inetd.conf suchen:

pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/popper -s

die genericstable und virtusertable haben mit dem eigentlichen versenden nix zu tun. diese definieren nur
für sendmail, wie adressen z.B. nach außen hin maskiert werden.

Dies ist nur für deinen externen mailtransport wichtig (bzw. wenn du mehrere Domais unterhälst und untereinander mailst)

CU Axel.

bei Antwort benachrichtigen
Mr.Tom AxelE „Hallo Tom,nicht verzagen. Die Fehlermeldungen bezüglich des sendmail starts...“
Optionen

Hey Axel,

ich habe es endlich hinbekommen. Der Fehler war auf meiner Seite und ganz simpel.
Und ist schon peinlich, denn der Grund warum es nicht gegangen ist, war der, ich habe bei meinen Änderungen der Datei "/sendmail.rc.config" SuSEconfig nicht gestartet. Denn beim Neustart des Rechners wird ja SuSEconfig nicht von selber gestartet. Deshalb ist, nachdem ich die Änderungen vorgenommen habe nichts passiert.
Wie schon geschrieben, es ist schon peinlich weil ich (normalerweise) schon weis, dass man bei gewissen Dateien SuSEconfig von Hand starten muss. Außer, man macht solche Änderungen mit „YAST“ der dann SuSEconfig automatisch startet.

Also, noch mal danke für deine Tipps.

Gruß Mr.Tom

bei Antwort benachrichtigen
Axele (Anonym) Mr.Tom „Hey Axel,ich habe es endlich hinbekommen. Der Fehler war auf meiner Seite und...“
Optionen

Mich würde dennoch interessieren, ob DU ISDN oder ein Modem beutzt, denn bei mir ist eine
Merkwürdigkeit aufgetaucht, die ich mir nicht erklären kann:

Ich habe für ein kleineres Netz einen Mailserver mit ISDN Verbindung aufgebaut., genauso
wie immer konfiguriert. Modem Testbetrieb: alles ok. ISDN: t-online weist die Mails ab.

Nu bin ich ratlos.

bei Antwort benachrichtigen
Mr.Tom Axele (Anonym) „Mich würde dennoch interessieren, ob DU ISDN oder ein Modem beutzt, denn bei...“
Optionen

Hey AxelE,

ich benutze ISDN, und es funktioniert sehr gut. Werden die mails auch maskiert? d.h. die interne email-Adresse wird in die im Internet gültige email-Adresse geändert. Es kann auch sein, dass wenn du nicht mit t-online ins Internet gehst, die mails dann abgewiesen werden.
Sende mir mal die Fehlermeldung die zurück kommt.

Gruß Mr.Tom

bei Antwort benachrichtigen
AxelE Mr.Tom „Hey AxelE,ich benutze ISDN, und es funktioniert sehr gut. Werden die mails auch...“
Optionen

Hi Mr. Tom,

ja, die mails werden maskiert und die einzige Fehlermeldung, die ich erhalte. ist :
connection refused by server.

Ich vermute du wählst dich mit t-online win, hast dort einen Accont und benutzt
mailto.btx.dtag.de als relay.

Bei meinen Recherchen (es geht darum mails direkt vom Linuxserver an die Ziel-
rechner zu übergeben) bin ich mittlerweise zu folgenden Ergebnissen gekommen:

1) Anwahl über call by call und modem____________t-online akzeptiert
2) Anwahl über t-online mit modem_______________t-online akzeptiert nicht
3) Anwahl über call by call und isdn______________t-online akzeptiert nicht
4) Anwahl über t-online und isdn________________nicht getestet.

Primär geht es darum, daß der Linuxrechner sich per isdn und call by call Einwählen soll.

Ich begreife hierbei nicht, warum 1) geht und 3) nicht. Die Mailserver von t-online werden
richtig erkannt, DNS läuft, ausgehende Adressen sind richtig gesetzt.

Noch merkwürdiger ist dann Fall 2), die ausgehende Adresse ist entsprechend dem
Einwahlkonto gesetzt. Ändert man hierbei die mailertable auf den t-online-rechner geht's
übrigens. Aber das ist hier nicht Sinn der Übung.

Andererseits kann ich ja einem (localen) Mailserver nicht den Domainnamen der bei
einem ISP registrierten Domain geben (im Fall des kleinen Netzwerkrechners). Und meinem
Mailserver zu Hause sicher nicht die t-online domain ;-). Wahrscheinlich spakt t-online dann
auch wegen der IP-Adressen ab.

Die hübsche Meldung dazu (dito bei isdn):
Running SAA05996 (sequence 1 of 1)
axel-ernst@t-online.de... Connecting to mailin01.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin00.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin07.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin06.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin02.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin05.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin03.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Connecting to mailin04.sul.t-online.de. via esmtp...
axel-ernst@t-online.de... Deferred: Connection refused by mailin04.sul.t-online.de.

cu,

der Axel

bei Antwort benachrichtigen
Mr.Tom AxelE „Hi Mr. Tom,ja, die mails werden maskiert und die einzige Fehlermeldung, die ich...“
Optionen

Hey Axel,

ich gehe mit freenet ins Internet. Mein Mailserver zu hause wählt sich dort und bei noch einem Provider ein und holt die mails ab.
Ich verschicke sie also nicht direkt zum Empfänger-Server, wie du das vorhast. Ich habe schon mal in einem Forum gelesen, dass es bei t-online so ähnliche Problem auch gab. Warum es mit call by call/modem funktioniert und call by call/isdn nicht, kann ich dir auch nicht sagen.
Versuche doch mal mit deiner Konfiguration einen anderen Provider. Bestimmt hat einer deiner Freunde einen anderen als t-online.

Gruss Mr.Tom

bei Antwort benachrichtigen
AxelE Mr.Tom „Hey Axel,ich gehe mit freenet ins Internet. Mein Mailserver zu hause wählt sich...“
Optionen

jepp,

alle anderen gehen ja auch.

Cu Axel

bei Antwort benachrichtigen
Mr.Tom AxelE „jepp, alle anderen gehen ja auch.Cu Axel“
Optionen

Hey Axel,

ich habe mich zu früh gefreut mit meinem mailserver daheim. Denn ich kann nur mails von meinem mailserver über sendmail an meinen email-account bei www.giga.de verschicken. Also an die Adresse "tomson@giga4u.de", sende ich an einen anderen mailempfänger, kommt die folgende Fehlermeldung zurück:

The original message was received at Thu, 15 Jun 2000 18:24:03 +0200
from win2000.moeschel.de [192.168.0.10]

----- The following addresses had permanent fatal errors -----

bei Antwort benachrichtigen
AxelE Mr.Tom „Hey Axel,habe deine Konfiguration noch nicht ausprobiert. Habe aber mal in die...“
Optionen

Mal so nebenbei:

benutzt Du ein Modem oder ISDN ?

Cu

Axel

bei Antwort benachrichtigen