Plesk X-Delivered-To
Einige Kunden benutzen den David von Tobit. Und damit das Teil als Mailserver ordentlich funktioniert werdem für ein E-Mail Account einfach Alias’e erstellt, die dann vom David-Server gepollt werden. Nun braucht David jedoch den X-Delivered-To Eintrag im Header, damit er die Mails intern verteilen kann. Das haben wir letztlich mit einem kleinen Mail-Handler für Plesk gelöst. Das ganze funktioniert jedoch nur unter QMail richtig. Hier einmal das Script
NEUES SCRIPT
#!/bin/bash
echo "X-Delivered-To: ${3}"
cat
ALTES SCRIPT
#!/bin/bash
# Settings
TMPPATH=/tmp
# Utilities
RM=rm
CAT=cat
SED=sed
MKTEMP=mktemp
# Incomming
CONTEXT=${1}
FROM=${2}
TO=${3}
# Read mail into file
MKTMPFILE=`${MKTEMP} -q ${TMPPATH}/${1}.XXXXXXXXXX`
MSGTMP=${MKTMPFILE}
${CAT} > ${MSGTMP}
# Insert mail header
${SED} -i "1 iX-Delivered-To: ${TO}" ${MSGTMP}
# Output mail
${CAT} ${MSGTMP}
# Delete temp file
${RM} -f ${MSGTMP}
Das ganze haben wir im Ordner /usr/local/psa/handlers/user-handlers/ als xdeliveredto gespeichert, (Achtung: der Ordner muss erst erstellt werden!)
die Datei Ausführbar gemacht (chmod +x /usr/local/psa/handlers/user-handlers/xdeliveredto) und als Handler registriert
/usr/local/psa/admin/sbin/mailmng --add-handler --handler-name xdeliveredto --handler-type global --executable /usr/local/psa/handlers/user-handlers/xdeliveredto --context xdeliveredto --hook before-local --priority 30
Hoffe damit kann man einigen viel Zeit und Arbeit ersparen!
shyper.net
am 5. Mrz. 2010
Vielen Dank für den guten Tip mit der Einbindung von eigenen Filtern in Plesk. Ich mußte selber gerade ein Envelope-To einfügen für einen Abruf durch fetchmal und bin halb krank geworden, weil Plesk mit den dot-qmails macht was es will. Ich hatte auch schon selber ein Skript geschrieben, das ich Euch nicht vorenthalten möchte, weil es etwas einfacher und schneller ist:
——————————————
#!/bin/sh
echo “X-Envelope-To: ${3}”
cat
——————————————
Gruß! Andreas aus Hannover
am 19. Mrz. 2010
Hatte mein Script vor einiger Zeit auch so aufgebaut gehabt wie deines. Wollte die Änderung noch mal irgendwann hier Posten, aber das hast du jetzt ja gemacht
am 16. Apr. 2010
Guten Tag
Soweit super, danke für das Scripts. Von gewissen Absender vedoppeln Sich die E-Mails aber im Tobit-Posteingang. An was kann das liegen?
am 26. Apr. 2010
Wird als Server evtl. Postfix genutzt?
Wenn ja, könnte es sein, dass die Mail zwei Empfänger hat und dann entsprechend oft bearbeitet wird. Dann wird unter Umständen der falsche X-Delivered-To wert gesetzt.
am 7. Jul. 2010
[...] habe das ganze hier gefunden und für meine Zwecke etwas abgeändert. ITDavid.fx, Plesk, qmail ← Core-Temp [...]
am 11. Okt. 2010
Vielen Danke,
ich habe die letzten Stunden damit verbracht in einer Mailbox mit Änderung der .qmail Datei und einer eigenen .procmailrc Datei das selbe zu erreichen. Hat zwar auch funktioniert, aber das hier ist viel eleganter, da Plesk ja gerne die .qmail Datei überschreibt.
Btw. ich musste bei Plesk 8.2 das den Aufruf von mailmng etwas abändern:
–handler-type global wurde zu –global
–priority 30 kennt Plesk 8.2 nicht also habe ich es weggelassen
am 5. Nov. 2010
Hallo, wenn ich das nun so Anwende habe ich folgenden Effekt im SMTP Header:
X-Envelope-To: catch-all@domain.tld
Received: (qmail 6710 invoked by uid 110); 5 Nov 2010 12:27:17 +0100
Delivered-To: 47-mail@domain.tld
X-Envelope-To: mail@domain.tld
Ich bin am Verzweifeln…
am 5. Nov. 2010
Eine unsaubere Lösung wäre einfach alle von qmail generierten x-envelope-to Zeilen zu entfernen.
Einfach mal an dem cat folgendes hängen:
| grep -v ‘^X-Envelope-To’
allerdings würden dabei auch Zeilen im Mailtext entfernt die so beginnen.
am 5. Nov. 2010
Okay, nun ist aber das Problem, dass ich ein Envelope-To: Feld haben muss, damit David das auswerten kann.
Daher muss es doch möglich sein, dass obere Feld welche die Catch All Adresse beschreibt auszublenden…
am 6. Nov. 2010
Ja aber genau das sollte doch dann funktionieren, nachdem das grep eingebaut wurde?
Ansonsten einfach mal mit x-delivered-to testen, das funktioniert zumindest bei uns ganz gut
am 6. Nov. 2010
Wenn ich deinen Parameter eingebaut habe, habe ich nur noch Deliverted-To: 47-mail@domain.tld und mehr nicht
am 8. Nov. 2010
Habe nun mit X-Delivered-To getestet, gleicher Fehler…
Werde noch wahnsinnig…
am 8. Nov. 2010
Dann verstehe ich das Problem evtl. nicht genau. Führt er evtl. das Script zwei mal aus und fügt deshalb zwei Header-zeilen ein?
Und welcher wäre denn der richtige Eintrag? catch-all@ oder mail@ ?
am 8. Nov. 2010
Hallo, der Mail@ wäre der Richtige eintrag… Habe die Maschine nun schon neu Aufgesetzt allerdings keine änderung.
1und1 Root Server mit openSUSE 11.0 und Plesk 9.5.3 und Qmail.
am 8. Nov. 2010
Hmm. Ich denke das Script wird dann zweimal ausgerufen. Bitte mal ein weiteres test-echo vr dem cat einbauen. Beispiel:
echo “X-Test: Yes”
Wenn diese Zeile dann zweimal vorkommt muss das Script leider die alte Mail auf einen vorhandenen Header prüfen.
am 9. Nov. 2010
X-SMTPTOFIELD: Envelope-To:
X-Delivered-To: catch-all@domain.tld
X-Test: Yes
Received: (qmail 10381 invoked by uid 110); 9 Nov 2010 14:04:14 +0100
Delivered-To: 11-mail@domain.tld
X-Delivered-To: mail@domain.tld
X-Test: Yes
Wird wohl 2x Ausgeführt, aber warum??
Was hab ch nun für eine Möglichkeit?
am 9. Nov. 2010
Dann mal das hier probieren:
#!/bin/bash
MAILTEXT=`cat`
if [[ "$MAILTEXT" =~ "X-DELSCRIPT: YES" ]]
then
NOTHING=”true”
else
echo “X-Delivered-To: ${3}”
echo “X-DELSCRIPT: YES”
fi
printf “%s\n” “$MAILTEXT”
am 9. Nov. 2010
Dann bekomme ich Unknown Sender mit Unknwon Subject, das scheint garnicht zu Funktionieren…
am 13. Nov. 2010
Keine lösung?
am 16. Nov. 2010
Hatte vorher keine Zeit. Stehe jetzt aber mit nem anderen Script vor dem Selben problem. Ich werde die Lösung dann nachher hier posten
am 16. Nov. 2010
So hab meins fertig. Habe es auch gleich fuer X-Delivered-To angewendet. Ist jetzt aber ein Perl-Script geworden
edit: wordpress hats verunstaltet… hier ein Link:
http://shyper.net/newxdel.txt
am 17. Nov. 2010
Shyper, ich danke dir vielmals!
Es Funktioniert.
am 10. Mrz. 2011
[...] habe das ganze hier gefunden und für meine Zwecke etwas [...]