Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sollte ein MTA lokal Mail für user@hostname-only annehmen?

1 view
Skip to first unread message

Tim Landscheidt

unread,
Sep 10, 2023, 6:19:33 PM9/10/23
to
Moin,

bei der Installation von Exim (4.96) auf einem Fedora-System
(37) tauchte das Nebenproblem auf, dass die Defaultkonfigu-
ration primary_hostname nicht setzt, aber die Passage:

| […]

| # primary_hostname =

| This is a commented-out setting of the primary_hostname op-
| tion. Exim needs to know the official, fully qualified name
| of your host, and this is where you can specify it. How-
| ever, in most cases you do not need to set this option.
| When it is unset, Exim uses the uname() system function to
| obtain the host name.

| […]

aus der Exim-Anleitung
(https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_default_configuration_file.html)
zu optimistisch ist, denn in diesem Fall wird
primary_hostname nicht auf $(hostname -f) („fully qualified
name of your host“) gesetzt, sondern $(hostname); so weit,
so unschön.

Bevor ich nun primary_hostname auf $(hostname -f) setze,
wollte ich auf einem Debian-System (Exim 4.96/Bookworm), wo
dies so eingestellt ist, testen, dass in diesem Fall auch
Mail an user@$(hostname) angenommen wird:

| $ for address in "$(whoami)" "$(whoami)@$(hostname)" "$(whoami)@$(hostname -f)"; do
| > echo | mail -s "Test für $address" "$address"
| > done
| $

was die Erkenntnis brachte, dass ein FQDN als
primary_hostname nicht auch den nichtqualifizierten System-
namen als Empfänger akzeptieren lässt.

Das lässt sich nun (wahrscheinlich) recht leicht beheben,
wenn man $(hostname) zu local_domains hinzufügt.

Meine Frage ist nun: Muss/sollte man das auch tun? Gibt es
verbreitete Konventionen, auf die sich Software berufen
könnte, dass user@hostname-only zustellbar sein muss? Oder
kann man annehmen, dass wohlerzogene Software nur an user
ohne jeden Systemnamen adressiert?

TIA,
Tim

Tim Landscheidt

unread,
Sep 11, 2023, 4:11:27 AM9/11/23
to
I wrote:

> bei der Installation von Exim (4.96) auf einem Fedora-System
> (37) tauchte das Nebenproblem auf, dass die Defaultkonfigu-
> ration primary_hostname nicht setzt, aber die Passage:

> | […]

> | # primary_hostname =

> | This is a commented-out setting of the primary_hostname op-
> | tion. Exim needs to know the official, fully qualified name
> | of your host, and this is where you can specify it. How-
> | ever, in most cases you do not need to set this option.
> | When it is unset, Exim uses the uname() system function to
> | obtain the host name.

> | […]

> aus der Exim-Anleitung
> (https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_default_configuration_file.html)
> zu optimistisch ist, denn in diesem Fall wird
> primary_hostname nicht auf $(hostname -f) („fully qualified
> name of your host“) gesetzt, sondern $(hostname); so weit,
> so unschön.

> […]

Wen es interessiert oder betrifft: Dieses Nebenproblem rühr-
te nach einem ersten Blick in den Quelltext anscheinend da-
her, dass Exim bei IP6-Support wohl nur die IP6-Adresse des
Namens, der von uname() zurückgegeben wurde, und dann wieder
den zugehörigen Namen nachschlägt und in diesem Fall in
/etc/hosts nur ein entsprechender Eintrag für 127.0.0.2 vor-
handen war.

Man kann dieses Problem beheben, indem man $(hostname) in
dns_ipv4_lookup aufnimmt oder einen /etc/hosts-Eintrag für
::2 vornimmt, wofür ich mich entschieden habe, da die Logik
vielleicht auch in anderen Programmen eingebaut ist.

Tim

Marco Moock

unread,
Sep 11, 2023, 4:29:50 AM9/11/23
to
Am 11.09.2023 um 08:11:24 Uhr schrieb Tim Landscheidt:

> oder einen /etc/hosts-Eintrag für
> ::2 vornimmt,

Wieso ::2?
Nach meinem Kenntnisstand ist das nicht der IPv6-Localhost, der ist nur
::1/128.
::2 wird ins Internet geroutet.

Kay Martinen

unread,
Sep 11, 2023, 6:10:03 AM9/11/23
to
Am 11.09.23 um 00:19 schrieb Tim Landscheidt:

> bei der Installation von Exim (4.96) auf einem Fedora-System
> (37) tauchte das Nebenproblem auf, dass die Defaultkonfigu-
> ration primary_hostname nicht setzt, aber die Passage:

> | # primary_hostname =
>
> | This is a commented-out setting of the primary_hostname op-
> | tion. Exim needs to know the official, fully qualified name
> | of your host, and this is where you can specify it. How-
> | ever, in most cases you do not need to set this option.
> | When it is unset, Exim uses the uname() system function to
> | obtain the host name.

> aus der Exim-Anleitung
> (https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_default_configuration_file.html)
> zu optimistisch ist, denn in diesem Fall wird
> primary_hostname nicht auf $(hostname -f) („fully qualified
> name of your host“) gesetzt, sondern $(hostname); so weit,
> so unschön.
>
> Bevor ich nun primary_hostname auf $(hostname -f) setze,
> wollte ich auf einem Debian-System (Exim 4.96/Bookworm), wo
> dies so eingestellt ist, testen, dass in diesem Fall auch
> Mail an user@$(hostname) angenommen wird:
>
> | $ for address in "$(whoami)" "$(whoami)@$(hostname)" "$(whoami)@$(hostname -f)"; do
> | > echo | mail -s "Test für $address" "$address"
> | > done
> | $

Das soll ein Mailserver sein der mail annimmt für domainX und/oder
domainY oder? Hast du auch mal versucht an user@localhost zu
adressieren? Das sollte immer gehen denke ich.

> was die Erkenntnis brachte, dass ein FQDN als
> primary_hostname nicht auch den nichtqualifizierten System-
> namen als Empfänger akzeptieren lässt.
>
> Das lässt sich nun (wahrscheinlich) recht leicht beheben,
> wenn man $(hostname) zu local_domains hinzufügt.

Ebenso wie 'localhost' falls der nicht eh schon drin steht.

> Meine Frage ist nun: Muss/sollte man das auch tun? Gibt es
> verbreitete Konventionen, auf die sich Software berufen
> könnte, dass user@hostname-only zustellbar sein muss? Oder
> kann man annehmen, dass wohlerzogene Software nur an user
> ohne jeden Systemnamen adressiert?

Hmm. Ich kenne das nur so das man localhost und fqdn des MTA Hosts in
jedem fall in den local domains drin haben sollte, und eben auch alle
anderen domainparts für die man mail annehmen will.

Hostname und domainname kann man ja getrennt setzen was sich in
entsprechenden Dateien in /etc niederschlägt. Allerdings hängt es von
der software oder dem resolver ab welche searchorder (nss) er nutzt und
dann zurück liefert.

Wenn in der nsswitch.conf z.b. ein

hosts: dns files

dann wird erst der dns gefragt. Dann hängt es wieder davon ab was
'search' oder 'domain' in der resolv.conf stehen haben ob du
mtahost.deinedomain.de bekommst oder evtl. mtahost.irgendeinedomain.de

wie das mit resolvconf und/oder systemd-resolve läuft weiß ich ehrlich
gesagt nicht. Ich lege die gern tot oder schmeiße sie raus, hier bei mir
privat. Denn ich hab meine internen DNS und die sollen verdammt noch mal
auch benutzt werden - ohne fallback auf gurgelpups o.a.

Kurz: finde erst mal raus ob der exim überhaupt deine lokale
Namenseinstellung verwendet - oder nur wenn der DNS nicht erreichbar ist
(s.o.)

Allerdings bin ich da etwas retro. Es mag sein das der obige Kram bei
dem neumod'schen zeug überhaupt nicht mehr gefragt wird. :)

Bye/
/Kay

--
"Kann ein Wurstbrot die Welt retten?" :-)

Christian Garbs

unread,
Sep 11, 2023, 6:40:48 AM9/11/23
to
Mahlzeit!

Tim Landscheidt <t...@tim-landscheidt.de> wrote:

> | $ for address in "$(whoami)" "$(whoami)@$(hostname)" "$(whoami)@$(hostname -f)"; do
> | > echo | mail -s "Test für $address" "$address"
> | > done
> | $
>
> was die Erkenntnis brachte, dass ein FQDN als
> primary_hostname nicht auch den nichtqualifizierten System-
> namen als Empfänger akzeptieren lässt.

Das geht am Thema vorbei, aber ist der Test passend?

Damit testest Du nur die lokale Zustellung. Mail von außen könnte
sich ggf. anders verhalten, wenn sie über SMTP oder so reinkommt.

Gruß
Christian
--
....Christian.Garbs....................................https://www.cgarbs.de
Achtung, Autofahrer!
Beim Gasgeben kommt Ihnen ständig die Fahrbahn entgegen!

Tim Landscheidt

unread,
Sep 11, 2023, 3:59:21 PM9/11/23
to
Autsch. Du hast natürlich Recht. (Was ist dann eigentlich
das IP6-Äquivalent, um unterschiedliche Dämonen auf
127.0.0.1:25, 127.0.0.2:25, etc. lauschen zu lassen, ohne
ein Netzwerkgerät außer lo zu haben?)

Tim

Tim Landscheidt

unread,
Sep 11, 2023, 4:20:44 PM9/11/23
to
Christian Garbs <mi...@cgarbs.de> wrote:

>> | $ for address in "$(whoami)" "$(whoami)@$(hostname)" "$(whoami)@$(hostname -f)"; do
>> | > echo | mail -s "Test für $address" "$address"
>> | > done
>> | $

>> was die Erkenntnis brachte, dass ein FQDN als
>> primary_hostname nicht auch den nichtqualifizierten System-
>> namen als Empfänger akzeptieren lässt.

> Das geht am Thema vorbei, aber ist der Test passend?

> Damit testest Du nur die lokale Zustellung. Mail von außen könnte
> sich ggf. anders verhalten, wenn sie über SMTP oder so reinkommt.

Er passt zumindest halb, denn meine „Sorgen“ gelten vornehm-
lich lokalen Einlieferern wie cron, und diese scheinen eher
/usr/sbin/sendmail als Port 25 zu nutzen.

Bei Mail von außen müsste der einliefernde MTA den Empfänger
umschreiben, denn hostname alleine wird nicht aufgelöst wer-
den. (Darf man ersteres?)

Tim

Marco Moock

unread,
Sep 12, 2023, 1:31:26 AM9/12/23
to
Am 11.09.2023 um 19:59:19 Uhr schrieb Tim Landscheidt:

> Autsch. Du hast natürlich Recht. (Was ist dann eigentlich
> das IP6-Äquivalent, um unterschiedliche Dämonen auf
> 127.0.0.1:25, 127.0.0.2:25, etc. lauschen zu lassen, ohne
> ein Netzwerkgerät außer lo zu haben?)

Ich kenne keines. Meiner Erachtens hätte man da ::/64 nehmen sollen,
hat man aber leider ned gemacht.
Du kannst aber zur loopback-Schnittstelle einfach IPs aus dem fd00::/8
hinzufügen.
Beachte: Da wird im Gegensatz zu IPv4 nicht das ganze Netz, sondern nur
die IP hinzugefügt.

Andreas Metzler

unread,
Sep 13, 2023, 1:10:19 PM9/13/23
to
Tim Landscheidt <t...@tim-landscheidt.de> wrote:
[...]
> Meine Frage ist nun: Muss/sollte man das auch tun? Gibt es
> verbreitete Konventionen, auf die sich Software berufen
> könnte, dass user@hostname-only zustellbar sein muss? Oder
> kann man annehmen, dass wohlerzogene Software nur an user
> ohne jeden Systemnamen adressiert?

Hello,

Ich würde behaupten dass so ziemlich alles was mails versendet
entweder aus der old-school-Ecke kommt (cron) und dann
per /usr/sbin/sendmail wahrscheinlich
an "user" statt "user@hostname-only" verchickt, oder aber es
verschickt per SMTP und erwartet dann aber dass man einen Empfänger
explizit konfiguriert.

lg Andreas
--
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'

Marco Moock

unread,
Sep 13, 2023, 3:11:22 PM9/13/23
to
Am 13.09.2023 um 19:10:11 Uhr schrieb Andreas Metzler:

> Ich würde behaupten dass so ziemlich alles was mails versendet
> entweder aus der old-school-Ecke kommt (cron) und dann
> per /usr/sbin/sendmail wahrscheinlich
> an "user" statt "user@hostname-only" verchickt, oder aber es
> verschickt per SMTP und erwartet dann aber dass man einen Empfänger
> explizit konfiguriert.

Deswegen bietet sendmail ja canonify an, um Absender und Empfänger mit
Domainnnamen zu versehen.

Andreas Metzler

unread,
Sep 15, 2023, 11:57:35 AM9/15/23
to
exim natürlich auch. qualify_*

cu Andreas
0 new messages