Ausgehende emails umleiten / abfangen
Ausgehende emails umleiten / abfangen
Hallo,
ich habe nur kurz eine Realisierungsfrage. Ist es möglich in sendmail ausgehende Emails an bestimmte Adressen umzuleiten?
ich habe nur kurz eine Realisierungsfrage. Ist es möglich in sendmail ausgehende Emails an bestimmte Adressen umzuleiten?
Re: Ausgehende emails umleiten / abfangen
benutzen nicht fast alle MTAs die /etc/aliases Datei?
Falls sendmail die auch nutzt, dürfte folgendes helfen:
localempfaenger : emailadresse@draussen.de
Falls sendmail die auch nutzt, dürfte folgendes helfen:
localempfaenger : emailadresse@draussen.de
Re: Ausgehende emails umleiten / abfangen
das stimmt ja auch für sendmail, aber ich möchte emails für draußen umleiten. Also joe@aol.com --> peter@gmx.de .
Re: Ausgehende emails umleiten / abfangen
??
dein sendmail ist aber nicht für @aol.com zuständig..
du willst eventl. die aol mails abholen und dann weiter verschicken?
dein sendmail ist aber nicht für @aol.com zuständig..
du willst eventl. die aol mails abholen und dann weiter verschicken?
-
linuxnewbie
- Posts: 150
- Joined: 2003-01-24 16:00
Re: Ausgehende emails umleiten / abfangen
ich denke eher er will das mails die von seinem server aus gehen nach einer bestimmten adresse, auf der maschine abgefangen werden und an eine andere email addy verschickt wird.
zb du bist blubb@blubb.de und bist auf seinem server und willst
laber@laber.com eine email adresse schicken
in dem moment wo er auf abschicken klickt, fängt der mailserver die mail ab und merkt die geht an laber@laber.com und soll aber intern an moep@moep.de weitergeleitet werden ohne das er bei laber@laber.com in der emailbox eine weiterleitung eingestellt hat.
so hab ich das verstanden
ich denke nicht das soetwas ohne probleme möglich ist, denn so könnte man auch interne mails als kopie an jede beliebige person schicken ohne das der versender etwas mitbekommt
zb du bist blubb@blubb.de und bist auf seinem server und willst
laber@laber.com eine email adresse schicken
in dem moment wo er auf abschicken klickt, fängt der mailserver die mail ab und merkt die geht an laber@laber.com und soll aber intern an moep@moep.de weitergeleitet werden ohne das er bei laber@laber.com in der emailbox eine weiterleitung eingestellt hat.
so hab ich das verstanden
ich denke nicht das soetwas ohne probleme möglich ist, denn so könnte man auch interne mails als kopie an jede beliebige person schicken ohne das der versender etwas mitbekommt
Re: Ausgehende emails umleiten / abfangen
danke LinuxNewbie. Genau das war meine Frage. Jeder sagt doch das sendmail mächtig ist. Die Frage ist ja ob es das auch kann.
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Ausgehende emails umleiten / abfangen
Sendmail sagen, dass es für die Domain zuständig sein soll, mit Catchall alle E-Mail an diese Domain an ein Skript leiten, dies erstellt eine Kopie und versendet die Orginal E-Mail über einen weiteren SMTP Server an den Empfänger.robert wrote:danke LinuxNewbie. Genau das war meine Frage. Jeder sagt doch das sendmail mächtig ist. Die Frage ist ja ob es das auch kann.
Ach ja, erlaubt ist sowas, glaube ich, nicht!
Alexander Newald
Re: Ausgehende emails umleiten / abfangen
catchall will ich ja garnicht machen. Ich möchte nur die Adresse abändern. Also scannen und wenn es die Addresse ist diese austauschen.
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Ausgehende emails umleiten / abfangen
Ist schon klar, wird aber nur so gehen, wie ich es beschrieben habe.robert wrote:catchall will ich ja garnicht machen. Ich möchte nur die Adresse abändern. Also scannen und wenn es die Addresse ist diese austauschen.
Alexander Newald
So könnte es auch gehen
Hallo,
sendmail IST mächtig. Ich würde soweit gehen, zu sagen, daß ALLE mailtechnischen Probleme mit sendmail gelöst werden können. Auf unserem Server tut es bsp. folgendes:
- dafür sorgen, daß die User der Präsenzen nur unter den ihnen zugeordneten Domains Email versenden dürfen (also wenn ich mich als Benutzer der Domain foo.com authorisiere, darf ich als Absender nicht "me@bar.com" angeben.
- Mails, die von einer bestimmten Adresse verschickt werden, automatisch per BCC an eine andere Emailadresse weiterleiten (dieses Feature ist gerade in der Umsetzung)
Und das OHNE zusätzliche Software. Also sendmail kann wirklich alles.
Doch zurück zu eurem Problem. So sollte es auch gehen. Und eigentlich ist es ganz einfach :) :
In der /etc/sendmail.cf ist Ruleset 0 zuständig dafür, für jeden Empfänger einen sog. "Mailer" zu finden, der benutzt wird, um die Mail weiterzuleiten. Zusätzlich wird der Host und der Benutzername ermittelt und für den späteren Aufruf des Mailers gespeichert. In dieses Ruleset 0 muß jetzt eine Regel hinein, die die gewünschte Adresse austauscht. Es muß also einfach aus "bad_user@aol.de" "me@you.com" gemacht werden. Die weiteren Regeln kümmern sich dann um den Rest. Hier lassen sich auch leicht die Datenbankfunktionen verwenden um abhängig von Domain oder User an verschiedene Adressen umzuleiten.
Wenn Ihr nicht wißt, wie man die sendmail.cf bearbeitet, einfach nochmal hier posten, dann überleg ich mir was dazu. Und wenn es geklappt hat, natürlich auch posten ;)
Grüße
Pollux
PS: Verboten ist es aber ohne wissen des Absenders trotzdem. Wenn Du es auf eine eigene Adresse umleitest verstößt DU gegen das Postgeheimnis. :twisted:
sendmail IST mächtig. Ich würde soweit gehen, zu sagen, daß ALLE mailtechnischen Probleme mit sendmail gelöst werden können. Auf unserem Server tut es bsp. folgendes:
- dafür sorgen, daß die User der Präsenzen nur unter den ihnen zugeordneten Domains Email versenden dürfen (also wenn ich mich als Benutzer der Domain foo.com authorisiere, darf ich als Absender nicht "me@bar.com" angeben.
- Mails, die von einer bestimmten Adresse verschickt werden, automatisch per BCC an eine andere Emailadresse weiterleiten (dieses Feature ist gerade in der Umsetzung)
Und das OHNE zusätzliche Software. Also sendmail kann wirklich alles.
Doch zurück zu eurem Problem. So sollte es auch gehen. Und eigentlich ist es ganz einfach :) :
In der /etc/sendmail.cf ist Ruleset 0 zuständig dafür, für jeden Empfänger einen sog. "Mailer" zu finden, der benutzt wird, um die Mail weiterzuleiten. Zusätzlich wird der Host und der Benutzername ermittelt und für den späteren Aufruf des Mailers gespeichert. In dieses Ruleset 0 muß jetzt eine Regel hinein, die die gewünschte Adresse austauscht. Es muß also einfach aus "bad_user@aol.de" "me@you.com" gemacht werden. Die weiteren Regeln kümmern sich dann um den Rest. Hier lassen sich auch leicht die Datenbankfunktionen verwenden um abhängig von Domain oder User an verschiedene Adressen umzuleiten.
Wenn Ihr nicht wißt, wie man die sendmail.cf bearbeitet, einfach nochmal hier posten, dann überleg ich mir was dazu. Und wenn es geklappt hat, natürlich auch posten ;)
Grüße
Pollux
PS: Verboten ist es aber ohne wissen des Absenders trotzdem. Wenn Du es auf eine eigene Adresse umleitest verstößt DU gegen das Postgeheimnis. :twisted:
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Ausgehende emails umleiten / abfangen
Hm, sicher, dass dein Ansatz auch für Mails geht, die sendmail als SMTP Server annimmt und weiterleitet (und nicht lokal zustellt)?
Das ganze wurde vor einigen Monaten auf der sendmail Mailingliste diskuttiert und da war man der Ansicht, das die einzige Möglichkeit die sei, die ich beschrieben habe.
Alexander Newald
Das ganze wurde vor einigen Monaten auf der sendmail Mailingliste diskuttiert und da war man der Ansicht, das die einzige Möglichkeit die sei, die ich beschrieben habe.
Alexander Newald
Und es geht!
Hallo zusammen,
ich weiß ja nicht WER in dieser Sendmail-Mailing Liste diskutiert, aber offensichtlich Leute, die den Wald vor lauter Bäumen nicht sehen :lol:
Also folgendes:
Ruleset 0 nimmt die Empfängeradresse und muss am Ende folgendes zurückgeben:
- Einen Mailer, wie er mit dem M-Kommando definiert wurde. Für ausgehende Mails ist das gewöhnlich ESMTP.
- Einen Host, zu dem die Mail geschickt wird. Das geschieht durch MX-Lookups der entsprechenden Domain.
- Einen Usernamen (=Empfängeradresse), der im Envelope genannt wird. Also wenn Sendmail das SMTP-Kommando "RCPT To" gibt.
Hier ist der Ansatzpunkt: ganz zu Anfang im Ruleset 0 wird geprüft, ob es sich um eine bestimmte Adresse handelt. Wenn ja, wird sie einfach durch eine andere ersetzt. Dann läuft Ruleset 0 ganz normal durch und verschickt die Mail an die neue Adresse. Der Inhalt der Mail bleibt erhalten! Insbesondere der From-Header wird nicht verändert. Daran und an den "Recieved" Headern kann man schön sehen, wie die Mail lief.
Ich habe das getestet und es funktioniert ganz einwandfrei. Hier die Regel, die ich ganz an den Anfang von Ruleset 0 gesetzt habe (natürlich mit anderen Adressen :) ):
(Achtung: Tab-Stop vor "good_guy"!)
Dadurch wird alle Mail, die Sendmail an badguy@aol.com verschicken will an good_guy@gmx.de umgeleitet. Wer möchte, kann das ganze mit Datenbanken oder Wildcards noch flexibler auf mehrere Adressen oder ganze Domains ausdehnen.
Wie sendmail die Mail bekommt, ist übrigens egal. Und natürlich funktioniert das auch für Adressen, die eigentlich lokal zugestellt werden würden. Wir tauschen ja die Adresse aus, bevor sendmail überhaupt merkt, daß es eine lokale Adresse ist.
Also einfach mal ausprobieren. Und bei Fragen nochmal posten ;)
Grüße
Pollux
ich weiß ja nicht WER in dieser Sendmail-Mailing Liste diskutiert, aber offensichtlich Leute, die den Wald vor lauter Bäumen nicht sehen :lol:
Also folgendes:
Ruleset 0 nimmt die Empfängeradresse und muss am Ende folgendes zurückgeben:
- Einen Mailer, wie er mit dem M-Kommando definiert wurde. Für ausgehende Mails ist das gewöhnlich ESMTP.
- Einen Host, zu dem die Mail geschickt wird. Das geschieht durch MX-Lookups der entsprechenden Domain.
- Einen Usernamen (=Empfängeradresse), der im Envelope genannt wird. Also wenn Sendmail das SMTP-Kommando "RCPT To" gibt.
Hier ist der Ansatzpunkt: ganz zu Anfang im Ruleset 0 wird geprüft, ob es sich um eine bestimmte Adresse handelt. Wenn ja, wird sie einfach durch eine andere ersetzt. Dann läuft Ruleset 0 ganz normal durch und verschickt die Mail an die neue Adresse. Der Inhalt der Mail bleibt erhalten! Insbesondere der From-Header wird nicht verändert. Daran und an den "Recieved" Headern kann man schön sehen, wie die Mail lief.
Ich habe das getestet und es funktioniert ganz einwandfrei. Hier die Regel, die ich ganz an den Anfang von Ruleset 0 gesetzt habe (natürlich mit anderen Adressen :) ):
Code: Select all
Rbadguy<@aol.com.> good_guy<@gmx.de.>
Dadurch wird alle Mail, die Sendmail an badguy@aol.com verschicken will an good_guy@gmx.de umgeleitet. Wer möchte, kann das ganze mit Datenbanken oder Wildcards noch flexibler auf mehrere Adressen oder ganze Domains ausdehnen.
Wie sendmail die Mail bekommt, ist übrigens egal. Und natürlich funktioniert das auch für Adressen, die eigentlich lokal zugestellt werden würden. Wir tauschen ja die Adresse aus, bevor sendmail überhaupt merkt, daß es eine lokale Adresse ist.
Also einfach mal ausprobieren. Und bei Fragen nochmal posten ;)
Grüße
Pollux
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Ausgehende emails umleiten / abfangen
Hi,
ich erhalte:
Alexander Newald
ich erhalte:
Code: Select all
Mar 9 15:48:37 ********* sendmail[5466]: NOQUEUE: SYSERR(root): /etc/mail/sendmail.cf: line 774: unknown configuration lineRe: Ausgehende emails umleiten / abfangen
Hallo Alexander,
das ist komisch. Sendmail ist beim lesen seiner config-Datei sehr genau. Wo hast Du die Zeile eingefügt? Was genau hast Du eingefügt? Poste mal das ensprechende Stück der sendmail.cf
Bei mir steht die Zeile hier:
Ã?brigens mußt Du nicht mit Deiner laufenden Konfiguration testen. Du erstellst eine Kopie der sendmail.cf, bspw. sendmail.cf.test, und änderst diese. Dann rufst Du sendmail im Ruletesting-Mode auf und gibst als Konfig-Datei die geänderte Kopie an:
sendmail -bt -C/etc/sendmail.cf.test
Nun hast Du eine Kommandozeile, in der Du testen kannst, was Sendmail mit den Adressen macht. Zuerst die Regel, dann die Emailadresse. Also z.B.
3 me@you.com
Nun gibt sendmail aus, was es macht und am Ende siehst Du wie es die Adresse umgeschrieben hat (me<@you.com.>). Unser Interesse liegt auf Ruleset 0 also testen wir das, jedoch muss die Adresse vorher durch Regel 3 aufbereitet werden, somit:
3,0 me@you.com
Als Ergebnis kommt heraus, wie Sendmail jetzt weitermachen würde:
$# esmtp $@ you . com $: me < @ you . com >
Bedeutet:
$# esmtp -> es wird der esmtp-Mailer benutzt
$@ you.com -> mit diesem Rechner (bzw. dem Eintrag in seinem MX-Record) wird verbunden
$: me<@you.com> -> das wird als Empfängeradresse angegeben (wird allerdings von sendmail nochmal bearbeitet, aber das ist nur Kosmetik).
Nun kannst Du auch Deine abgefangene Email-Adresse probieren:
3,0 bad_guy@aol.com
Du solltest sehen, wie zu Beginn des Ruleset 0 (namens "parse") die Adresse ausgetauscht wird.
Bin gespannt, ob es so bei Dir funktioniert.
Grüße
Pollux
das ist komisch. Sendmail ist beim lesen seiner config-Datei sehr genau. Wo hast Du die Zeile eingefügt? Was genau hast Du eingefügt? Poste mal das ensprechende Stück der sendmail.cf
Bei mir steht die Zeile hier:
Code: Select all
.
.
.
######################################
### Ruleset 0 -- Parse Address ###
######################################
Sparse=0
Rbad_guy<@aol.com.> good_guy<@gmx.de.> Diese Zeile eingefügt
R$* $: $>Parse0 $1 initial parsing
R<@> $#local $: <@> special case error msgs
R$* $: $>ParseLocal $1 handle local hacks
R$* $: $>Parse1 $1 final parsing
#
# Parse0 -- do initial syntax checking and eliminate local addresses.
# This should either return with the (possibly modified) input
# or return with a #error mailer. It should not return with a
.
.
.
sendmail -bt -C/etc/sendmail.cf.test
Nun hast Du eine Kommandozeile, in der Du testen kannst, was Sendmail mit den Adressen macht. Zuerst die Regel, dann die Emailadresse. Also z.B.
3 me@you.com
Nun gibt sendmail aus, was es macht und am Ende siehst Du wie es die Adresse umgeschrieben hat (me<@you.com.>). Unser Interesse liegt auf Ruleset 0 also testen wir das, jedoch muss die Adresse vorher durch Regel 3 aufbereitet werden, somit:
3,0 me@you.com
Als Ergebnis kommt heraus, wie Sendmail jetzt weitermachen würde:
$# esmtp $@ you . com $: me < @ you . com >
Bedeutet:
$# esmtp -> es wird der esmtp-Mailer benutzt
$@ you.com -> mit diesem Rechner (bzw. dem Eintrag in seinem MX-Record) wird verbunden
$: me<@you.com> -> das wird als Empfängeradresse angegeben (wird allerdings von sendmail nochmal bearbeitet, aber das ist nur Kosmetik).
Nun kannst Du auch Deine abgefangene Email-Adresse probieren:
3,0 bad_guy@aol.com
Du solltest sehen, wie zu Beginn des Ruleset 0 (namens "parse") die Adresse ausgetauscht wird.
Code: Select all
> 3,0 bad_guy@aol.com
canonify input: bad_guy @ aol . com
Canonify2 input: bad_guy < @ aol . com >
Canonify2 returns: bad_guy < @ aol . com . >
canonify returns: bad_guy < @ aol . com . >
parse input: bad_guy < @ aol . com . >
Parse0 input: good_guy < @ gmx . de . >
Parse0 returns: good_guy < @ gmx . de . >
ParseLocal input: good_guy < @ gmx . de . >
ParseLocal returns: good_guy < @ gmx . de . >
Parse1 input: good_guy < @ gmx . de . >
Mailertable input: < gmx . de > good_guy < @ gmx . de . >
Mailertable input: gmx . < de > good_guy < @ gmx . de . >
Mailertable returns: good_guy < @ gmx . de . >
Mailertable returns: good_guy < @ gmx . de . >
MailerToTriple input: < > good_guy < @ gmx . de . >
MailerToTriple returns: good_guy < @ gmx . de . >
Parse1 returns: $# esmtp $@ gmx . de . $: good_guy < @ gmx . de . >
parse returns: $# esmtp $@ gmx . de . $: good_guy < @ gmx . de . >
Grüße
Pollux
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Ausgehende emails umleiten / abfangen
Hi,
ich habe es genauso wie oben bei dir eingetragen. Hm, komisch...
Alexander Newald
ich habe es genauso wie oben bei dir eingetragen. Hm, komisch...
Alexander Newald
Re: Ausgehende emails umleiten / abfangen
:?:
Hast Du auf den Tab-Stop vor "good_guy" geachtet? Leerzeichen sind dort falsch am Platz und könnten zu diesem Fehler führen.
Wäre doch gelacht, wenn es bei mir läuft und bei Dir nicht :)
Pollux
Hast Du auf den Tab-Stop vor "good_guy" geachtet? Leerzeichen sind dort falsch am Platz und könnten zu diesem Fehler führen.
Wäre doch gelacht, wenn es bei mir läuft und bei Dir nicht :)
Pollux
-
alexander newald
- Posts: 1117
- Joined: 2002-09-27 00:54
- Location: Hannover
- Contact:
Re: Ausgehende emails umleiten / abfangen
Yep, habe ich.Pollux wrote::?:
Hast Du auf den Tab-Stop vor "good_guy" geachtet? Leerzeichen sind dort falsch am Platz und könnten zu diesem Fehler führen.
Wäre doch gelacht, wenn es bei mir läuft und bei Dir nicht :)
Pollux
Alexander Newald