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

Exim und mehrere Smarthost/Mailprovider - ein Beispiel

169 views
Skip to first unread message

Heiko Schlittermann

unread,
Dec 20, 2013, 11:40:02 AM12/20/13
to
Hallo,

aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
zu testen.

https://ssl.schlittermann.de/hg/exim-smart-config/file/default/exim4.conf

# this is by no way a complete configuration file!
# it's just intended as a starting point

# The providers file
# All relevant information about the smart providers is stored
# in one place. This place is the "providers" file. The structure
# is simple. It consists of lines as in the example:
#
# # sender |server[:port] |user|password
# # -----------+---------------+----+---------
# f...@bar.com foobar.com foo secret
# *@bar.com bar.com/mx:smtp fuz secret2
# * smtp.gmail.com xxx baz

PROVIDERS = <your file name for the providers file here>

# some macros to ease the understanding
ADDRESS_DATA = ${sg{${lookup{$sender_address}lsearch*@{PROVIDERS}}}{\\s+}{\t}}
SMARTHOST = ${extract{1}{\x20\t}{$address_data}}
HOST = ${extract{1}{:}{SMARTHOST}}
PORT = ${extract{2}{:}{SMARTHOST}{$value}{submission}}
USER = ${extract{2}{\t}{$address_data}}
PASS = ${extract{3}{\t}{$address_data}}

domainlist local_domains = @

begin router

# the first router routes according the sender_address
smarthost:
driver = manualroute
address_data = ADDRESS_DATA
route_data = HOST
transport = smtp_auth

# in case you don't have a '*' line in your providers file

dnslookup:
driver = dnslookup
domains = !+local_domains
transport = smtp
no_more

begin transport

smtp_auth:
driver = smtp
hosts_require_auth = *
port = PORT

smtp:
driver = smtp

begin authenticators

plain:
driver = plaintext
public_name = PLAIN
client_send = ^USER^PASS

login:
driver = plaintext
public_name = LOGIN
client_send = :USER:PASS

Best regards from Dresden/Germany
Viele Grüße aus Dresden
Heiko Schlittermann
--
SCHLITTERMANN.de ---------------------------- internet & unix support -
Heiko Schlittermann, Dipl.-Ing. (TU) - {fon,fax}: +49.351.802998{1,3} -
gnupg encrypted messages are welcome --------------- key ID: 7CBF764A -
gnupg fingerprint: 9288 F17D BBF9 9625 5ABC 285C 26A9 687E 7CBF 764A -
(gnupg fingerprint: 3061 CFBF 2D88 F034 E8D2 7E92 EE4E AC98 48D0 359B)-
signature.asc

Matthias Taube

unread,
Dec 20, 2013, 12:20:01 PM12/20/13
to
Am 20.12.2013 17:32, schrieb Heiko Schlittermann:
> Hallo,
>
> aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
> einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
> nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
> zu testen.
>
> https://ssl.schlittermann.de/hg/exim-smart-config/file/default/exim4.conf

Danke, Beispiele sind immer gut.

Ich habe von denen, welche meine Beispielconfig per Mail angefordert und
erhalten haben nichts mehr gehört -> auch da scheint es zu funktionieren.

mfg
Matthias



--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/l91u62$fe5$1...@ger.gmane.org

Marc Haber

unread,
Dec 20, 2013, 2:00:02 PM12/20/13
to
On Fri, 20 Dec 2013 17:32:46 +0100, Heiko Schlittermann
<h...@schlittermann.de> wrote:
>aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
>einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
>nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
>zu testen.

Ohne es mir näher angeschaut zu haben, wie gut passt das in die
Defaultkonfiguration? Magst Du das mal in einen dokumentierten Patch
massieren, ich bau das dann in das Paket ein?

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/E1Vu5AD-...@swivel.zugschlus.de

Paul Muster

unread,
Dec 20, 2013, 2:30:02 PM12/20/13
to
On 20.12.2013 17:32, Heiko Schlittermann wrote:

> aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
> einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
> nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
> zu testen.

> # The providers file

> # # sender |server[:port] |user|password
> # # -----------+---------------+----+---------

> # *@bar.com bar.com/mx:smtp fuz secret2

Diese Zeile verstehe ich nicht. Was wird aus dem Eintrag in der Spalte
"server[:port]" im Folgenden gemacht?

> # some macros to ease the understanding
> ADDRESS_DATA = ${sg{${lookup{$sender_address}lsearch*@{PROVIDERS}}}{\\s+}{\t}}
> SMARTHOST = ${extract{1}{\x20\t}{$address_data}}
> HOST = ${extract{1}{:}{SMARTHOST}}
> PORT = ${extract{2}{:}{SMARTHOST}{$value}{submission}}
> USER = ${extract{2}{\t}{$address_data}}
> PASS = ${extract{3}{\t}{$address_data}}


"smtp" wird in PORT geschrieben, denke ich. Aber HOST mit "bar.com/mx"
zu befüllen, kommt mir komisch vor.


Danke & viele Grüße

Paul



--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/uaheoa-...@news.muster.net

Jens Schüßler

unread,
Dec 20, 2013, 3:30:02 PM12/20/13
to
* Paul Muster <exp-3...@news.muster.net> wrote:
> On 20.12.2013 17:32, Heiko Schlittermann wrote:
>
> >aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
> >einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
> >nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
> >zu testen.
>
> > # The providers file
>
> > # # sender |server[:port] |user|password
> > # # -----------+---------------+----+---------
>
> > # *@bar.com bar.com/mx:smtp fuz secret2
>
>
> "smtp" wird in PORT geschrieben, denke ich. Aber HOST mit
> "bar.com/mx" zu befüllen, kommt mir komisch vor.

Ich denke mal das ist als Platzhalter für den MX-record von bar.com gemeint


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/2013122020...@sge.kicks-ass.org

Heiko Schlittermann

unread,
Dec 20, 2013, 5:20:02 PM12/20/13
to
Paul Muster <exp-3...@news.muster.net> (Fr 20 Dez 2013 20:10:54 CET):
> On 20.12.2013 17:32, Heiko Schlittermann wrote:
>
> >aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
> >einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
> >nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
> >zu testen.
>
> > # The providers file
>
> > # # sender |server[:port] |user|password
> > # # -----------+---------------+----+---------
>
> > # *@bar.com bar.com/mx:smtp fuz secret2
>
> Diese Zeile verstehe ich nicht. Was wird aus dem Eintrag in der
> Spalte "server[:port]" im Folgenden gemacht?
>
> > # some macros to ease the understanding
> > ADDRESS_DATA = ${sg{${lookup{$sender_address}lsearch*@{PROVIDERS}}}{\\s+}{\t}}
> > SMARTHOST = ${extract{1}{\t}{$address_data}}
> > HOST = ${extract{1}{:}{SMARTHOST}}
> > PORT = ${extract{2}{:}{SMARTHOST}{$value}{submission}}
> > USER = ${extract{2}{\t}{$address_data}}
> > PASS = ${extract{3}{\t}{$address_data}}
>
>
> "smtp" wird in PORT geschrieben, denke ich. Aber HOST mit
> "bar.com/mx" zu befüllen, kommt mir komisch vor.

SMARTHOST ist der 1. Teil von $address_data (getrennt an ' ' oder '\t')
also foo.bar, oder auch bar.com/mx:smtp

HOST ist der 1. Teil von SMARTHOST, getrennt an ':'
also foo.bar, oder bar.com/mx
Dieser HOST wird dann später in

route_data = HOST

verwendet. Die Regeln zu route_data besagen, dass dort entweder eine
Hostliste, oder eine „indirekte Hostliste“ stehen kann. Eine eine
indirekte Hostliste ist genau dieses bar.com/mx. Dann sind die MX
hosts für bar.com gemeint.

PORT ist dann der 2. Teil von SMARTHOST, getrennt an ':'. Wenn das
fehlt, wird von „submission“ ausgegangen, also 587.

Streng genommen bei Smarthosts eher unwahrscheinlich, aber das
Feature ist halt mit drin…
signature.asc

Heiko Schlittermann

unread,
Dec 20, 2013, 5:50:01 PM12/20/13
to
Hallo Marc,

Marc Haber <mh+debian-...@zugschlus.de> (Fr 20 Dez 2013 19:51:09 CET):
> On Fri, 20 Dec 2013 17:32:46 +0100, Heiko Schlittermann
> <h...@schlittermann.de> wrote:
> >aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
> >einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
> >nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
> >zu testen.
>
> Ohne es mir näher angeschaut zu haben, wie gut passt das in die
> Defaultkonfiguration? Magst Du das mal in einen dokumentierten Patch
> massieren, ich bau das dann in das Paket ein?

Du meinst die Debian-Konfig-Files? Puh, die verwende ich nie. Da muss
ich mir das mal ansehen, ob ich die Logik dahinter verstehe…

Wird heute nichts mehr.

--
Heiko
signature.asc

Dietmar Segbert

unread,
Dec 21, 2013, 5:30:02 AM12/21/13
to
Hallo Matthias,
hallo Heiko,
danke f锟絩 das Beispiel,
Wohin muss den die exim4.conf hin kopiert werden, nach /etc/exim4/?
Und wie muss exim konfiguriert sein, dpkg-reconfigure exim4-config?
Und dann "Smarthost fetchmail", muss dann ein Smarthost eingetragen
werden?

Mit den hier schon vorher ver锟絝fentlichten Erg锟絥zungen in exim4 habe ich
das nicht zum Laufen gekriegt.

Mit vilen Gr锟斤拷en

Dietmar


> no_html...@nurfuerspam.de schrieb am 21.12.13:

> Am 20.12.2013 17:32, schrieb Heiko Schlittermann:
>> Hallo,
>>
>> aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt
>> f锟絩 einen Exim mit mehren Smarthosts. Und ich finde, soo
>> kompliziert ist das nun nicht. Ich habe jetzt 60 Minuten
>> gebraucht, um das aufzuschreiben und etwas zu testen.
>>
>> https://ssl.schlittermann.de/hg/exim-smart-config/file/default/exi
>> m4.conf

> Danke, Beispiele sind immer gut.

> Ich habe von denen, welche meine Beispielconfig per Mail
> angefordert und erhalten haben nichts mehr geh锟絩t -> auch da
> scheint es zu funktionieren.

> mfg
> Matthias



> --
> Zum AUSTRAGEN schicken Sie eine Mail an
> debian-user-g...@lists.debian.org mit dem Subject
> "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
> Archive: http://lists.debian.org/l91u62$fe5$1...@ger.gmane.org


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/CkGZp...@didi.segbert

Matthias Taube

unread,
Dec 21, 2013, 8:10:01 AM12/21/13
to
Am 20.12.2013 19:51, schrieb Marc Haber:
> Ohne es mir näher angeschaut zu haben, wie gut passt das in die
> Defaultkonfiguration? Magst Du das mal in einen dokumentierten Patch
> massieren, ich bau das dann in das Paket ein?

Also meine Lösung setzt auf der Debian-Standardkonfig auf.

Nach der Installation werden dann per Script automatisch die Dateien in
/etc/exim4/conf.d kopiert und mit update-exim4.conf aktiviert.

Was meinst Du mit einem dokumentierten Patch - mit dem Paketbauen unter
Debian habe ich mich bisher nicht beschäftigt.

mfg
Matthias



--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/l943ej$rlq$1...@ger.gmane.org

Marc Haber

unread,
Dec 21, 2013, 10:20:02 AM12/21/13
to
On Sat, 21 Dec 2013 14:01:18 +0100, Matthias Taube
<no_html...@nurfuerspam.de> wrote:
>Was meinst Du mit einem dokumentierten Patch

Also hauptsächlich nicht nur der Code, sondern auch anpassungen der
Manpages und dem README.Debian.

> - mit dem Paketbauen unter
>Debian habe ich mich bisher nicht beschäftigt.

Darum geht's nicht, das muss man einfach nur committen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/E1VuOKJ-...@swivel.zugschlus.de

Heiko Schlittermann

unread,
Dec 21, 2013, 6:50:02 PM12/21/13
to
Marc Haber <mh+debian-...@zugschlus.de> (Fr 20 Dez 2013 19:51:09 CET):
> On Fri, 20 Dec 2013 17:32:46 +0100, Heiko Schlittermann
> <h...@schlittermann.de> wrote:
> >aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt für
> >einen Exim mit mehren Smarthosts. Und ich finde, soo kompliziert ist das
> >nun nicht. Ich habe jetzt 60 Minuten gebraucht, um das aufzuschreiben und etwas
> >zu testen.
>
> Ohne es mir näher angeschaut zu haben, wie gut passt das in die
> Defaultkonfiguration? Magst Du das mal in einen dokumentierten Patch
> massieren, ich bau das dann in das Paket ein?

Zuvor würde mich interessieren, ob hier jemand aus der Runde das mal
testen könnte. Ich habe keine mehreren Smarthosts und kann nicht
beurteilen, ob das praktisch ist, was ich da gebaut habe.

--
Heiko
signature.asc

Heiko Schlittermann

unread,
Dec 21, 2013, 7:00:01 PM12/21/13
to
Hallo Dietmar,

Dietmar Segbert <didi.s...@arcor.de> (Sa 21 Dez 2013 11:16:00 CET):
> Hallo Matthias,
> hallo Heiko,
> danke für das Beispiel,
> Wohin muss den die exim4.conf hin kopiert werden, nach /etc/exim4/?
> Und wie muss exim konfiguriert sein, dpkg-reconfigure exim4-config?
> Und dann "Smarthost fetchmail", muss dann ein Smarthost eingetragen
> werden?
>
> Mit den hier schon vorher veröffentlichten Ergänzungen in exim4 habe ich
> das nicht zum Laufen gekriegt.

Das was ich da als Beispiel habe, ist nicht für's blinde Kopieren
gedacht, es ist auf die wesentlichen Dinge beschränkt, die nur zeigen
sollen, dass es möglich ist, je nach Absender einen anderen Smarthost zu
verwenden.

Ich habe unten mal die Teile markiert, die Du in Deine Konfiguration
übernehmen müsstest. Das funktioniert aber nur gut, wenn Du eine
exim4.conf schon da hast. Wenn Du die Debian-Split-Config verwendest,
dann müsstest Du abwarten, bis Weihnachten vorbei ist, dann kann ich mal
versucht haben, das in dieses Schema von Marc eingebaut zu haben.


# this is by no way a complete configuration file!
# it's just intended as a starting point
# source: hg clone https://ssl.schlittermann.de/hg/exim-smart-config

# The providers file
# ------------------
# All relevant information about the smart providers is stored
# in one place. This place is the "providers" file. The structure
# is simple. It consists of lines as in the example:
#
# # sender |servers[::port] |user|password
# # -----------+-----------------+----+---------
# f...@bar.com foobar.com foo secret
# b...@bar.com a.com:b.com::25 foo sicrit
# *@bar.com bar.com/mx:25 fuz secret2
# * smtp.gmail.com xxx baz
#
# Note: the "servers::[port]" field is used as "route_data", thus all
# rules for route_data apply (see spec.txt, 20.3).
# - multiple servers are colon (:) separated
# - you can use indirect lists by appending /mx
# - you can specifiy a port number numerically (per default we use 587)

,--- das geht in den globalen Teil der Config
| PROVIDERS = <your file name for the providers file here>
|
| # some macros to ease the understanding
| ADDRESS_DATA = ${sg{${lookup{$sender_address}lsearch*@{PROVIDERS}}}{\\s+}{\t}}
| SMARTHOST = ${extract{1}{\t}{$address_data}}
| USER = ${extract{2}{\t}{$address_data}}
| PASS = ${extract{3}{\t}{$address_data}}
`--------

domainlist local_domains = @

begin router

# the first router routes according the sender_address
,----- das sollte der erste Router sein
| smarthost:
| driver = manualroute
| address_data = ADDRESS_DATA
| route_data = SMARTHOST
| transport = smtp_auth
`------------------
# in case you don't have a '*' line in your providers file

dnslookup:
driver = dnslookup
domains = !+local_domains
transport = smtp
no_more

begin transport

,-------- das in die transports, egal wohin
| smtp_auth:
| driver = smtp
| port = submission
| hosts_require_auth = *
`--------------

smtp:
driver = smtp

begin authenticators

,--------- zu den Authenticators
| es genügt der, der von Deinen Providern unterstützt wird
| plain:
| driver = plaintext
| public_name = PLAIN
| client_send = ^USER^PASS
|
| login:
| driver = plaintext
| public_name = LOGIN
| client_send = :USER:PASS
`------------

signature.asc

Dietmar Segbert

unread,
Dec 22, 2013, 4:50:01 AM12/22/13
to
Hallo Heiko,
ich k锟絥nte das testen, ich habe einen Account bei arcor, gmx, web.de
congstar und gmail.
Zum Schreiben/empfangen nutze ich openxp f锟絩 linux. Dort habe ich die
Accounts parallel konfiguriert und k锟絥nte auch direkt an exim4 senden
jeweils mit from: didi.s...@arcor.de bzw. den anderen Emailadressen.
Im Augenblick ist exim4 so konfiguriert, dass gmx als smarthost
(fetchmail) konfiguriert ist und einzelne Konfig-Dateien in config.d/
verwendet werden.

Viele Gr锟斤拷e

Dietmar
.

> h...@schlittermann.de schrieb am 22.12.13:

> Marc Haber <mh+debian-...@zugschlus.de> (Fr 20 Dez 2013
> 19:51:09 CET):
>> On Fri, 20 Dec 2013 17:32:46 +0100, Heiko Schlittermann
>> <h...@schlittermann.de> wrote:
>>>aus gegebenem Anlass habe ich mal ein Beispiel zusammengestellt
>>>f锟絩 einen Exim mit mehren Smarthosts. Und ich finde, soo
>>>kompliziert ist das nun nicht. Ich habe jetzt 60 Minuten
>>>gebraucht, um das aufzuschreiben und etwas zu testen.
>>
>> Ohne es mir n锟絟er angeschaut zu haben, wie gut passt das in die
>> Defaultkonfiguration? Magst Du das mal in einen dokumentierten
>> Patch massieren, ich bau das dann in das Paket ein?

> Zuvor w锟絩de mich interessieren, ob hier jemand aus der Runde das
> mal testen k锟絥nte. Ich habe keine mehreren Smarthosts und kann
> nicht beurteilen, ob das praktisch ist, was ich da gebaut habe.

> --
> Heiko


--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/CkK$MlA...@didi.segbert

Klaus Klose

unread,
Dec 24, 2013, 1:50:01 PM12/24/13
to
Am Freitag, 20. Dezember 2013, 18:19:09 schrieb Matthias Taube:

Hallo Mathias
>
> Ich habe von denen, welche meine Beispielconfig per Mail angefordert
> und erhalten haben nichts mehr gehört -> auch da scheint es zu
> funktionieren.
>
Ich bin durch den vorweihnachtlichen Stress noch nicht dazu gekommen das
bei mir einzubauen. Vielleicht komme ich ja zwischen den Feiertagen
dazu.

Allen eine Frohes Fest und ein Gesundes Neues Jahr.

--
Klaus Klose

Debian "Sid" (unstable) i686
KDE 4.11.3
signature.asc

Matthias Taube

unread,
Dec 25, 2013, 3:50:02 AM12/25/13
to
Am 24.12.2013 19:43, schrieb Klaus Klose:

> Ich bin durch den vorweihnachtlichen Stress noch nicht dazu gekommen das
> bei mir einzubauen. Vielleicht komme ich ja zwischen den Feiertagen
> dazu.

Ich werde nach Neujahr, wenn etwas Zeit ist das Beispiel so �berarbeiten
und dokumentieren, dass es ins Paket eingebaut werden kann.

mfg
Matthias




--
Zum AUSTRAGEN schicken Sie eine Mail an debian-user-g...@lists.debian.org
mit dem Subject "unsubscribe". Probleme? Mail an listm...@lists.debian.org (engl)
Archive: http://lists.debian.org/l9e62o$t52$1...@ger.gmane.org
0 new messages