Spamassassin für ausgehende Mails beschleunigen

edvsb

Registered User
Spamassassin für ausgehende Mails beschleunigen / abschalten

Hallo zusammen,

habe folgende Frage.

Gibt es eine Möglichkeit, dass ausgehende Mails unter Qmail vom Spamassassin nicht gescannt werden? Mit procmail habe ich zahlreiche Lösungsansätze gefunden, mit Qmail aber keinen einzigen.

Whitelist ist aktiviert und die Adressen auch eingetragen, aber irgendwie ist das dem SA komplett schnuppe.

Also es sollen Mail die vom Server versendet werden umgangen werden.

Hat jemand einen Tip wie das / oder ob überhaupt / das mit Qmail in Verbindung mit dem SA geht?

Danke und Gruß,

Ingo
 
Last edited by a moderator:
Hm, die gleiche Frage wollte ich Dich eigtl. fragen - schliesse mich Ingo an. Bei mir ist es naemlich so, dass geschriebene Mails ueber Horde als Spam deklariert werden, weil der HELO Host angeblich suspicious ist.

Ich werde heute abend Eurer Zeit mal die Kopfzeilen einer Testemail in den Thread kopieren.
 
Hi :)

heute abend Eurer Zeit
Welche Zeitverschiebung gibt es eigentlich bei Dir? Hier ist es jetzt nach 3 Uhr morgens und ich gehe jetzt schlafen :rolleyes:

Bei mir gibt es ansich keine Probleme. Alles läuft 100% ok, nur die externen Mails (Newsletter) halt viel zu langsam. Über Plesk könnte man das einrichten, aber die Möglichkeit besteht bei uns nunmal nicht.

Gruß, Ingo
 
edvsb said:
Welche Zeitverschiebung gibt es eigentlich bei Dir?

9 Stunden.

Gutnacht,
Mercy.

Edith sagt: koennten auch 10 sein, ist ja im Osten;>
 
Last edited by a moderator:
Es sind 8 - ihr habt Sommerzeit und wir Winterzeit. Im australischen Sommer und europäischen Wetter hättest Du mit 10 Stunden goldrichtig gelegen :)

Mein Problem ist der Versand mit Horde. Dort werden Mails als Spam klassifiziert, weil Horde irgendwas bei der SMTP Kommunikation verhunzt.
 
Wenn ich mich recht entsinne, ist das doch die alte Klicke aus dem qsheff-Thread, oder?

Also gehe ich davon aus, daß es um SA installation mit qsheff geht?
Dann erinnert Ihr Euch bestimmt an die Datei qmail-queue, in der SA aufgerufen wird, gelle?
Evtl. könnte man an dieser Stelle vorher prüfen ob es eine eingehende oder ausgehende Mail ist?

huschi.
 
Hi Huschi,

ja, dass das in die qmail-queue rein muß ist mir schon klar. Besser gesagt muß der spamc halt bei einer lokalen Mail übersprungen / weggelassen werden.

Also ansich eine stinknormale Fallbedingung wenn dann / oder.

Aber woher erfahre ich überhaupt ob das eine ausgehende Mail ist? Dabei suche ich nun schon zig Tage die Qmail Seiten durch. Da gibt es ja ne ganze Menge "Environment Variables" und dergleichen, nur wie kann man darauf zugreifen?

Danke und Gruß,
Ingo
 
edvsb said:
Aber woher erfahre ich überhaupt ob das eine ausgehende Mail ist?
Das ist eine gute Frage. Durch ausprobieren? :)
In 4.3. Umgebungsvariablen in der deutschen Übersetzung von "Life with Qmail" hab ich gelesen, daß RELAYCLIENT von qmail-smtpd gesetzt wird. (qmail-smtpd => incoming mail)

Demnach könnte folgendes funktionieren:
Code:
if test ! -z $RELAYCLIENT ; then
#SpamAssassin
fi

huschi.
 
Hi Huschi,

danke für den Codeschnipsel :-)

"Life with Qmail", ja die Seite meinte ich. Da war ich tagelang unterwegs. Bzw bei Qmailrocks. Ich hatte allerdings eine in englisch.

Nunja, probiert hatte ich schon einiges, nur sobald das das dann in die qmail-queue eingetragen hatte liefen die Mails wieder nicht mehr. Also hatte ich da wohl von der Syntax her etwas falsch. Für was steht z.B. das "-z"

Werde das ganze dann heute nacht noch mal testen.

Danke Dir,
Gruß, Ingo
 
edvsb said:
Für was steht z.B. das "-z"
"man test" liefert die Antwort:
-z Zerolength
! negation

RELAYCLIENT wird also auf 'leer' geprüft und das Ergebnis negiert.
Also: "wenn nicht leer RELAYCLIENT dann"

huschi.
 
Hi Huschi,

das war mir ansich alles klar, nur dieses -z nicht.

Und wenn man auch die richtige Syntax nutzt, so wie Du dann funzt das ganze auch. Hatte die ganze Zeit kein "fi" als Abschluß.

Ich hatte da schon so einen kleinen Schnipsel vom Qmail-Scanner "127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue""
Der war dem ganzen schon sehr nahe, aber als eingefleischter PHPler....

Aber dennoch. Irgendwie funktioniert das dennoch nicht wirklich. Als IF-Bedingung kann ich eintragen was ich mag, die wird immer ausgeführt.

Aber ich Probier mal weiter.

Ach ja, das "man" zu test ist auf meinem Server nicht verfügbar.

Gruß, Ingo
 
Manchmal hilft auch sowas:
info coreutils test

Ansonsten kannst Du auch die Bash-Syntax ausprobieren:
Code:
if [ ! -z $RELAYCLIENT ] ; then
#...
fi

Teste die Funktionsweise erstmal in einem eigenen Script:
Code:
#!/bin/bash
RELAYCLIENT=""
if [ ! -z $RELAYCLIENT ] ; then
  echo "yep"
else
  echo "nop"
fi
Befüll einfach RELAYCLIENT mit verschiedenen Werten.

huschi.
 
HI, Du wirst lachen, das mache ich schon die letzten 30 Minuten. Auch in der Bash-Syntax. Als extra Script geht es auch. Jenachdem was die Bedingung oder der Wert ist wird IF oder eben der ELSE Bereich verwendet.

Das ganze in der qmail-queue (ohne das RELAYCLIENT="") füht jetzt immer zum ELSE-Bereich. Also ist die Var leer oder nicht vorhanden. Egal ob lokal gesendet / empfangen oder ob von GMX oder Web.de.

So habe ich es jetzt drinnen
Code:
#!/bin/bash
if [ ! -z $RELAYCLIENT ] ; then
  /usr/bin/spamc | /var/qmail/bin/qmail-qsheff
else
  /var/qmail/bin/qmail-qsheff
fi

Gruß, Ingo
 
Last edited by a moderator:
edvsb said:
Das ganze in der qmail-queue (ohne das RELAYCLIENT="") füht jetzt immer zum ELSE-Bereich. Also ist die Var leer oder nicht vorhanden.
Nun, das war ja auch eher ins Blaue geraten... :)
Versuch einfach noch ein paar andere Variablen durch. Z.B. DATABYTES soll auch von qmail-smtpd gesetzt werden.

Evtl. auch anders rum: USER sollte z.B. nur bei abgehenden Mails gesetzt sein.

Du kannst Dir auch einfach mal in der qmail-queue alle Variablen in ein eigenes Logfile schreiben:
Code:
echo "-------------------------------" >> /var/log/qmail-queue-set.log
date "+%Y%m%d%H%M%S" >> /var/log/qmail-queue-set.log
set >> /var/log/qmail-queue-set.log
(echo und date hab ich nur dazu gesetzt, damit Du nach mehreren Emails zuordnen kannst, zu welcher Email welcher Eintrag gehört.)

Evtl. findest Du damit einen Hinweis/Unterschied von ein-/ausgehenden Emails.

huschi.
 
Hi.

Jep, ich probiere da einfach mal alle aus. Ein paar habe ich ja schon. USER hatte ich noch nicht, SENDER brachte mich aber zumindest mal nicht weiter.

Allerdings hatte ich das mit dem Log als alles erste versucht. Wollte ja schließlich wissen was in den Variablen steht. Dabei ging aber der Mailversand nicht mehr und geloogt wurde dennoch nichts.

Aber mal die ganze Queue ins log schreiben wäre auch gut, muß nur überlegen wann ich das mache, denn dann geht der versand ja wieder nicht mehr.

Also dann bis in ein paar Stunden. Oder früher wenn es funzt :)

Danke und Gruß,
Ingo
 
edvsb said:
muß nur überlegen wann ich das mache, denn dann geht der versand ja wieder nicht mehr.
Dann stimmt Deine Syntax nicht... :)

Aber ich bin wirklich gespannt auf das Ergebnis.

huschi.
 
Hi

ja, da war an der Sytax sicher was falsch. Das war etwa so echo "$RELAYCLIENT" > logfile. Gut, aber wenn die leer ist kann er auch nichts schreiben. Das andere waren fehlende Schreibrechte, daher war auch der Mailversand gestört.

Aber mal ein Zwischenstand, denn es geht ansich nun....

mit DATABYTES durchläuft er auch immer den Else-Bereich
Das einzig unterschiedliche im Log ist => SMTPHELOHOST=mail.gmx.net
und halt die Remote-Adressen

Aber USER funktioniert auch, sogar genau so wie es sein soll.
Server -> intern = ohne SA
Server -> extern = ohne SA
Mailprog -> intern = mit SA
Mailprog -> extern = mit SA
extern -> intern = mit SA

Somit ist auch der Newsletterversand nun runter auf 0,31 Sek pro Mail (zuvor 2,8 Sek)

Und nebenbei: Der Tip mit "info coreutils test" hat funktioniert.

Werde mir das aber noch weiter ansehen, aber schonmal Danke :)

Gruß, Ingo
 
Sieht die qmail-queue bei Dir jetzt so aus?
Code:
#!/bin/bash
if [ -z $USER ] ; then
  /usr/bin/spamc | /var/qmail/bin/qmail-qsheff
else
  /var/qmail/bin/qmail-qsheff
fi

huschi.
 
Jep, genau so sieht sie aus.

Zum testen war sie allerdings andersrum, also mit ! und if/else vertauscht.

Gruß, Ingo
 
Back
Top