qmailscanner lokale kopien und weiterleitungen nach draussen
qmailscanner lokale kopien und weiterleitungen nach draussen
Hallo,
habe den qmailtoaster nach der anleitung zusammengeschraubt. Alles geht auch soweit.
Nur werden leider die lokalen kopien, also Mails die per /var/vpopmail/ ... ins verzeichniss kopiert werden natürlich nicht gescannt. ( vor allem Spamassassin)
das heisst wenn jemand eine weiterleitung macht an ein anderes konzo auf dem Rechner per &email@host.tld wird diese gescannt. Die kopie die auch noch in der .qmail Datei steht aber leider ja nicht.
Diese auch nochmal per & ans selbe konto zu leiten, geht auch nicht, das merk qmail :-)
Habt ihr das hinbekommen?
Gruss Mario
habe den qmailtoaster nach der anleitung zusammengeschraubt. Alles geht auch soweit.
Nur werden leider die lokalen kopien, also Mails die per /var/vpopmail/ ... ins verzeichniss kopiert werden natürlich nicht gescannt. ( vor allem Spamassassin)
das heisst wenn jemand eine weiterleitung macht an ein anderes konzo auf dem Rechner per &email@host.tld wird diese gescannt. Die kopie die auch noch in der .qmail Datei steht aber leider ja nicht.
Diese auch nochmal per & ans selbe konto zu leiten, geht auch nicht, das merk qmail :-)
Habt ihr das hinbekommen?
Gruss Mario
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Auch wenn ich mir nicht absolut sicher bin, Dich richtig verstanden zu haben: Versuchs mal mit den Umgebungsvariablen
in Deinem smtpd-Runskript.
Code: Select all
QS_SPAMASSASSIN="on"
export QS_SPAMASSASSIN
QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl"
export QMAILQUEUERe: qmailscanner lokale kopien und weiterleitungen nach draussen
Hallo Kenzo,
danke für Deine Antwort. Leider hat das noch nix bewirkt, aber ich denke ich habe mich warscheinlich schlecht ausgedrückt.
Also:
Gehen wir mal von einer Mail an: user2@domain.tld aus.
Im Toaster ist es ja so konfiguriert, das die Mail an einen lokalen Benutzer
in das Verzeichniss der Domaine geht, dort nach .qmail-default schaut, diese dann angewiesen wird maildrop mit der datei mailfilter zu benutzen.
Darauf hin wird die Mail nach den Regeln der Datei .mailfilter die im ./Maildir des Benutzers user liegt behandelt.
Soweit so gut, geht auch alles...
Wenn ich jetzt aber möchte, das die Mail im Postkonto landet + eine Kopie weitergeleitet wird, lege ich eine datei mit Format:
Der Inhalt wäre dann:
Die richtige Mail ans Postfach geht aber direkt in Maildir ohne Spamassassin, klar die datei geht ja auch komplett an maildrop vorbei.
Verschicke ich die Kopie an Konto: user2@domain.tld mit &user2@domain.tld nochmal, merkt das qmail und die mail kommt zurück.
Meine Frage, wie erreiche ich eine checken per spamassassin, bei den Kopien, und wie bekomme ich es hin, das wenn eine Mail an user2@domain.tld geht, und dort eine weiterleitung oder ein catchall eingerichtet ist, die mail nach den Regeln von user2@domain.tld gecheckt wird, und dann weitergeleitet wird (auch an extern [web.de oder so])
Ich hoffe ich konnte es schildern ...
Gruss Mario
danke für Deine Antwort. Leider hat das noch nix bewirkt, aber ich denke ich habe mich warscheinlich schlecht ausgedrückt.
Also:
Gehen wir mal von einer Mail an: user2@domain.tld aus.
Im Toaster ist es ja so konfiguriert, das die Mail an einen lokalen Benutzer
in das Verzeichniss der Domaine geht, dort nach .qmail-default schaut, diese dann angewiesen wird maildrop mit der datei mailfilter zu benutzen.
Darauf hin wird die Mail nach den Regeln der Datei .mailfilter die im ./Maildir des Benutzers user liegt behandelt.
Soweit so gut, geht auch alles...
Wenn ich jetzt aber möchte, das die Mail im Postkonto landet + eine Kopie weitergeleitet wird, lege ich eine datei mit Format:
in dem Verzeichniss der domaine an..qmail-user
Der Inhalt wäre dann:
So die Mail die mit &user2@domain.tld weitergeschickt wird, läuft daduch natürlich auch durch Spammassassin, und wird nach den Regeln von user2@domain.tld behandelt.&user2@domain.tld <-- Weitergeleitete Kopie
/var/vpopmail/domains/domain/user/Maildir <-- Nachricht ins Postfach
Die richtige Mail ans Postfach geht aber direkt in Maildir ohne Spamassassin, klar die datei geht ja auch komplett an maildrop vorbei.
Verschicke ich die Kopie an Konto: user2@domain.tld mit &user2@domain.tld nochmal, merkt das qmail und die mail kommt zurück.
Meine Frage, wie erreiche ich eine checken per spamassassin, bei den Kopien, und wie bekomme ich es hin, das wenn eine Mail an user2@domain.tld geht, und dort eine weiterleitung oder ein catchall eingerichtet ist, die mail nach den Regeln von user2@domain.tld gecheckt wird, und dann weitergeleitet wird (auch an extern [web.de oder so])
Ich hoffe ich konnte es schildern ...
Gruss Mario
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Okay, nochmal ganz langsam (habe Dich immer noch nicht verstanden):
1.) Benutzt Du nun, wie im Subject angedeutet, qmail-scanner oder nicht?
2.) Nach welchem Howto hast Du den Server zusammengebastelt?
3.) Was steht in Deinen diversen .qmail Dateien?
IMHO ist folgendes Procedere das einfachste:
1.) .qmail anlegen mit den gewünschten Weiterleitungen, z.B.
Wenn ich Dich richtig verstehe, möchtest Du auch die Mail an den Originalempfänger scannen lassen. Dann kannst Du z.B. etwas wie
ans Ende Deiner .qmail-Datei hängen, wenn in Deinem Maildrop-Skript die Anweisungen zum scannen stehen.
Wenn Du qmail-scanner nutzt, mußt Du die von mir anfangs genannten Umgebungsvariablen nehmen, damit auch von intern nach intern gescannt wird. HTH&HAND :)
1.) Benutzt Du nun, wie im Subject angedeutet, qmail-scanner oder nicht?
2.) Nach welchem Howto hast Du den Server zusammengebastelt?
3.) Was steht in Deinen diversen .qmail Dateien?
IMHO ist folgendes Procedere das einfachste:
1.) .qmail anlegen mit den gewünschten Weiterleitungen, z.B.
Code: Select all
&user2@domain.de
&someone_invalid@gmx.de
Code: Select all
|preline /usr/bin/maildrop /etc/maildroprcWenn Du qmail-scanner nutzt, mußt Du die von mir anfangs genannten Umgebungsvariablen nehmen, damit auch von intern nach intern gescannt wird. HTH&HAND :)
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Hallo Kenzo,
vielen Dank für Deine Hilfe. Ok also, ich habe den Qmailtoaster nach dem Howtos von scythe42 installiert.
Zum scannen der Mails benutze ich den qmailscanner.
---
Nehmen wir mal die virtuelle Domain abc.de mit popkonten user1 und user2 als Beispiel.
Konfiguration:
Also in jeder virtuellen domain gibt es die .qmail-default Datei.
Beispiel: /var/vpopmail/domains/abc.de/.qmail-default
Diese wird ja verwendet wenn es keine extra für das Postfach gibt.
In dieser steht:
Beispiel: /var/vpopmail/domains/abc.de/mailfilter
In dieser steht:
Beispiel: /var/vpopmail/domains/abc.de/user1/.mailfilter
Meine Probleme: 8O
1. qmailadmin
Wenn ich eine Weiterleitung mit dem qmailadmin einrichte legt er die Datei .qmail-user nach /var/vpopmail/domains/abc.de/user1 funktionieren tut es aber erst wenn ich die Datei nach /var/vpopmail/domains/abc.de verschiebe.
2. Weiterleitungen
Wenn ich eine Weiterleitung anlege, also die datei .qmail-user1 und dort rein schreibe:
dann funktioniert das tadellos. Ist die Weiterleitung auch eine lokale Adresse wird diese natürlich auch gescannt.
Jetzt aber der Fall ich mache eine Weiterleitung, und möchte zusätzlich die Kopie in Postfach:
Also Empfänger: user1@abc.de
Weiterleitung nach: user2@abc.de
und Kopie ins Postfach von user1@abc.de
dann lautet der Inhalt der .qmail-user1 Datei ja:
Mache ich es mit:
So ich hoffe das war anschaulich geschildert, ich weiss das es schwer ist, wenn man das nicht selber konfiguriert hat.
Hoffe auf Hilfe,
Grüsse Mario
vielen Dank für Deine Hilfe. Ok also, ich habe den Qmailtoaster nach dem Howtos von scythe42 installiert.
Zum scannen der Mails benutze ich den qmailscanner.
---
Nehmen wir mal die virtuelle Domain abc.de mit popkonten user1 und user2 als Beispiel.
Konfiguration:
Also in jeder virtuellen domain gibt es die .qmail-default Datei.
Beispiel: /var/vpopmail/domains/abc.de/.qmail-default
Diese wird ja verwendet wenn es keine extra für das Postfach gibt.
In dieser steht:
damit wird maildrop angewiesen, die Datei mailfilter zu benutzen die im selben Verzeichniss liegt und somit für alle Popkonten verwendet wird für die es keine extradatei gibt.| maildrop mailfilter
Beispiel: /var/vpopmail/domains/abc.de/mailfilter
In dieser steht:
Dadurch wird ja im Maildir des Benutzers die .mailfilter Datei benutzt, und dort steht dann der eigentlich scannvorgang.
import EXT
import HOST
VPOP="| /var/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
VHOME=`/var/vpopmail/bin/vuserinfo -d $EXT@$HOST`
if ( $VHOME eq "" )
{
to "$VPOP"
}
else
{
exception {
include $VHOME/.mailfilter
}
exception {
to "$VPOP"
}
}
Beispiel: /var/vpopmail/domains/abc.de/user1/.mailfilter
if ( $SIZE < 262144 )
{
xfilter "/usr/local/bin/spamc -f -u $EXT@$HOST"
if (/^X-Spam-Flag: YES/)
{
cc "|/usr/local/bin/spamassassin -d |/usr/bin/spamprobe -c -d $VHOME -8 spam"
xfilter "/usr/local/bin/spamassassin -d"
}
else
SCORE = `/usr/bin/spamprobe -c -d $VHOME -8 receive`
}
if ( /^X-Status: SPAM/ )
{
to "$VHOME/Maildir/.Spam"
exit
}
else
{
to "$VPOP"
exit
}
Meine Probleme: 8O
1. qmailadmin
Wenn ich eine Weiterleitung mit dem qmailadmin einrichte legt er die Datei .qmail-user nach /var/vpopmail/domains/abc.de/user1 funktionieren tut es aber erst wenn ich die Datei nach /var/vpopmail/domains/abc.de verschiebe.
2. Weiterleitungen
Wenn ich eine Weiterleitung anlege, also die datei .qmail-user1 und dort rein schreibe:
dann funktioniert das tadellos. Ist die Weiterleitung auch eine lokale Adresse wird diese natürlich auch gescannt.
Jetzt aber der Fall ich mache eine Weiterleitung, und möchte zusätzlich die Kopie in Postfach:
Also Empfänger: user1@abc.de
Weiterleitung nach: user2@abc.de
und Kopie ins Postfach von user1@abc.de
dann lautet der Inhalt der .qmail-user1 Datei ja:
damit wird aber die Kopie nicht gescannt. Diese soll aber nach den Regeln von user1@abc.de gescannt werden.&user2@abc.de
/var/vpopmail/domains/abc.de/user1
Mache ich es mit:
erzeugt das einen Loop der dann als Fehlermeldung zurück kommt...
So ich hoffe das war anschaulich geschildert, ich weiss das es schwer ist, wenn man das nicht selber konfiguriert hat.
Hoffe auf Hilfe,
Grüsse Mario
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Dann mach es doch mal so, wie ich es oben beschrieben habe:Mache ich es mit:erzeugt das einen Loop der dann als Fehlermeldung zurück kommt...
Code: Select all
&user2@abc.de
|preline maildrop mailfilterRe: qmailscanner lokale kopien und weiterleitungen nach draussen
hi Kenzo,
danke das hat super geklappt.
Was genau bewirkt preline? eine Rückgabe an maildrop?
Nur noch eine kleine Sache.
Catchall
das habe ich im Moment so gelöst: :-D
Beispiel: /var/vpopmail/domains/abc.de/mailfilter
Ich habe die Mailfilterdatei angepasst:
/var/vpopmail/domains/abc.de/catchall/.mailfilter und damit an spamassassin.
Nun das Problem:
Schicke ich eine Mail an: kontogibtsnet@abc.de
dann scannt er die Mail nach den Regeln des Kontos kontogibtsnet@abc.de
und nicht nach den von catchall@abc.de?
Kennst du eine Lösung?
Danke im voraus, Deine hilfe ist echt super und bringt mich wirklich weiter!
Grüsse Mario
danke das hat super geklappt.
Was genau bewirkt preline? eine Rückgabe an maildrop?
Nur noch eine kleine Sache.
Catchall
das habe ich im Moment so gelöst: :-D
Beispiel: /var/vpopmail/domains/abc.de/mailfilter
Ich habe die Mailfilterdatei angepasst:
Dadurch geht die Mail durch die .mailfilterdatei unter:import EXT
import HOST
VCATCHALL="catchall@abc.de"
VPOP="| /var/vpopmail/bin/vdelivermail '' catchall@abc.de"
VHOME=`/var/vpopmail/bin/vuserinfo -d $EXT@$HOST`
if (-z $VCATCHALL)
{
VHOME=`/var/vpopmail/bin/vuserinfo -d $VCATCHALL`
exception {
include $VHOME/.mailfilter
}
}
if ( $VHOME eq "" )
{
to "$VPOP"
}
else
{
exception {
include $VHOME/.mailfilter
}
exception {
to "$VPOP"
}
}
/var/vpopmail/domains/abc.de/catchall/.mailfilter und damit an spamassassin.
Nun das Problem:
Schicke ich eine Mail an: kontogibtsnet@abc.de
dann scannt er die Mail nach den Regeln des Kontos kontogibtsnet@abc.de
und nicht nach den von catchall@abc.de?
Kennst du eine Lösung?
Danke im voraus, Deine hilfe ist echt super und bringt mich wirklich weiter!
Grüsse Mario
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
SieheWas genau bewirkt preline? eine Rückgabe an maildrop?
Code: Select all
man dot-qmailDas ist einigermaßen difficult - aber auch dafür gibt's eine (zumindest hier) funktionierende Lösung;Nur noch eine kleine Sache.
Catchall
Schau Dir mal http://marc.theaimsgroup.com/?l=vchkpw& ... 721509&w=2 an, vor allem die ersten Zeilen des Skripts. EXT und HOST sind für Catchalls ziemlich unbrauchbar.
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Hallo Kenzo,
danke nochmal für die schnelle Antwort. Ich habe mich nun an dem Artikel orientiert, aber eine eigene Konfiguration gemacht.
Folgende:
Als Beispiel wieder die Konten user1@abc.de und user2@abc.de
Meine .qmail-default sieht bei jeder Domain so aus:
Wenn nicht, liefert er die Mail an VPOP ab.
Das habe ich so gemacht damit ich die Mails immer nach den Regeln des entgültigen Emfängers scanne. Jetzt schickt er die Mail
nach den Regeln der .mailfilter datei von user1@abc.de
.mailfilter:
So wenn scannen aktiv wird gescannt und je nach dem verschoben.
SOOOOOOO nun mein kleines (grosses) Problem über dem ich jetzt schon 4,5 Stunden hänge.
Die Mail wird jetzt nach den Regeln von user1@abc.de gescannt, aber landet direkt im postfach und ignoriert
meine in .qmail-user1 gemachten weiterleitungen. Diese funktionieren, wenn ich statt dem Catchall das bounce-no-mailbox habe.
Hast du eine Idee?
Danke im Voraus
Grüsse Mario
danke nochmal für die schnelle Antwort. Ich habe mich nun an dem Artikel orientiert, aber eine eigene Konfiguration gemacht.
Folgende:
Als Beispiel wieder die Konten user1@abc.de und user2@abc.de
Meine .qmail-default sieht bei jeder Domain so aus:
danach wechselt er ja in die mailfilterdatei:| maildrop mailfilter
Das klappt auch alles super, er guckt ob unter VCATCHALL ein Catchall eingesetzt ist, default steht da "aus" und wenn ja schreibt er VHOME und VPOP um. Danach schaut er bei dem Empfänger nach ob die Datei "spamfilter-aktiv" da ist, wenn ja included er folgende .mailfilterdatei in dem Homeverzeichniss des Benutzers (user1)import EXT
import HOST
VCATCHALL="user1@abc.de"
VPOP="| /var/vpopmail/bin/vdelivermail '' bounce-no-mailbox"
VHOME=`/var/vpopmail/bin/vuserinfo -d $EXT@$HOST`
# Ist ein Catchall vorhanden?
if ($VCATCHALL ne "aus")
{
VHOME=`/var/vpopmail/bin/vuserinfo -d $VCATCHALL`
VPOP="| /var/vpopmail/bin/vdelivermail '' $VCATCHALL"
}
# Nachsehen ob Spamfilter eingeschaltet ist?
`test -e $VHOME/spamfilter-aktiv`
# Ist Spamfilter ist aktiv dann scannen
if( $RETURNCODE eq 0 )
{
if ( $VHOME eq "" )
{
to "$VPOP"
}
else
{
exception {
include $VHOME/.mailfilter
}
exception {
to "$VPOP"
}
}
}
else
{
to "$VPOP"
exit
}
Wenn nicht, liefert er die Mail an VPOP ab.
Das habe ich so gemacht damit ich die Mails immer nach den Regeln des entgültigen Emfängers scanne. Jetzt schickt er die Mail
nach den Regeln der .mailfilter datei von user1@abc.de
.mailfilter:
SHELL="/bin/sh"
VDIR=`pwd` # grab PWD by running the pwd command
log "== $EXT - $HOST - $VCATCHALL =="
# Ist ein Catchall vorhanden?
if ($VCATCHALL ne "aus")
{
if ( $SIZE < 262144 )
{
xfilter "/usr/local/bin/spamc -f -u $VCATCHALL"
log "== nach Spamassassin schicken =="
if (/^X-ChemSoft-Spam-Flag: YES/)
{
cc "|/usr/local/bin/spamassassin -d |/usr/bin/spamprobe -c -d $VHOME -8 spam"
xfilter "/usr/local/bin/spamassassin -d"
}
else
SCORE = `/usr/bin/spamprobe -c -d $VHOME -8 receive`
log "== In schleife catchall 2 ==="
}
}
else
{
if ( $SIZE < 262144 )
{
xfilter "/usr/local/bin/spamc -f -u $EXT@$HOST"
if (/^X-ChemSoft-Spam-Flag: YES/)
{
cc "|/usr/local/bin/spamassassin -d |/usr/bin/spamprobe -c -d $VHOME -8 spam"
xfilter "/usr/local/bin/spamassassin -d"
}
else
SCORE = `/usr/bin/spamprobe -c -d $VHOME -8 receive`
}
}
# Auslieferung an Postfach/Spamordner
if ( /^X-Chemsoft-Antispam-Status: SPAM/ )
{
to "$VHOME/Maildir/.Spam"
exit
}
else
{
to "$VPOP"
exit
}
So wenn scannen aktiv wird gescannt und je nach dem verschoben.
SOOOOOOO nun mein kleines (grosses) Problem über dem ich jetzt schon 4,5 Stunden hänge.
Die Mail wird jetzt nach den Regeln von user1@abc.de gescannt, aber landet direkt im postfach und ignoriert
meine in .qmail-user1 gemachten weiterleitungen. Diese funktionieren, wenn ich statt dem Catchall das bounce-no-mailbox habe.
Hast du eine Idee?
Danke im Voraus
Grüsse Mario
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Um ehrlich zu sein, steige ich da nicht richtig durch - es scheint auch ein wenig (zu) kompliziert geworden zu sein. Aber: Fehlt in der zweiten .mailfilter nicht die Deklaration von "$VPOP" und "$VHOME" oder übersehe ich da etwas angesichts der (für mich) recht fortgeschrittenen Vergreisung?
Re: qmailscanner lokale kopien und weiterleitungen nach draussen
Hallo Kenzo,
ja ist alles etwas kompakt geworden.
Die Variablen stehen zur Verfügung, da die zweite .mailfilter ja in die erste includiert wird.
Funktionier auch alles, bis auf das catchall macht Ã?rger 8O
Also, funktionieren tuts ja, nur wenn ich es weiterleiten will nicht :-(
Jemand ne Idee?
Grüsse Mario
ja ist alles etwas kompakt geworden.
Die Variablen stehen zur Verfügung, da die zweite .mailfilter ja in die erste includiert wird.
Funktionier auch alles, bis auf das catchall macht Ã?rger 8O
Also, funktionieren tuts ja, nur wenn ich es weiterleiten will nicht :-(
Jemand ne Idee?
Grüsse Mario