Article ID: 1711, created on Feb 27, 2009, last review on Oct 31, 2014

  • Applies to:
  • Plesk for Linux/Unix

Lösung

Hinweis: Dieser Artikel bezieht sich auf Qmail. Wenn Sie den Postfix-Mailserver verwenden, sollten Sie diesen Artikel lesen:

114845 Von PHP-Skripten auf dem Server werden viele E-Mail-Nachrichten versendet. Wie kann ich feststellen, auf welchen Domains diese Skripts ausgeführt werden, wenn ich Postfix verwende?

Achtung: Diese Methode kann zu einer erhöhten Serverlast aufgrund der zusätzlichen Verarbeitungsschritte für jede an den lokalen Mailserver gesendete Nachricht führen. Falls Sie nach Anwendung von Schritt 2 Probleme mit einer hohen Serverlast bemerken, sollten Sie die Änderungen mithilfe der Anleitung in Schritt 3 wieder rückgängig machen.

Es gibt eine Möglichkeit festzustellen, von welchem Ordner aus das PHP-Skript ausgeführt wurde, das die E-Mail-Nachrichten versendet.

Hinweis: Je nach Betriebssystem ("OS") und Version von Parallels Plesk ("Plesk") können die Pfade von den im Folgenden genannten Pfaden abweichen.

Erstellen Sie ein Skript /var/qmail/bin/sendmail.postfix-wrapper mit folgendem Inhalt:

#!/bin/sh
(echo X-Additional-Header: $PWD ;cat) | tee -a /var/tmp/mail.send|/var/qmail/bin/sendmail-qmail "$@"

Beachten Sie, dass das Skript aus zwei Zeilen bestehen muss, einschließlich der Zeile #!/bin/sh

2) Erstellen Sie eine Protokolldatei mit dem Namen /var/tmp/mail.send und gewähren Sie ihr "a+rw"-Rechte. Machen Sie das Wrapper-Skript ausführbar, benennen Sie das alte sendmail-Skript um und verknüpfen Sie es mit dem neuen Wrapper:

~# touch /var/tmp/mail.send
~# chmod a+rw /var/tmp/mail.send
~# chmod a+x /var/qmail/bin/sendmail-wrapper
~# mv /var/qmail/bin/sendmail /var/qmail/bin/sendmail-qmail
~# ln -s /var/qmail/bin/sendmail-wrapper /var/qmail/bin/sendmail

3) Warten Sie mindestens zwei Stunden und stellen Sie anschließend das ursprüngliche sendmail-Skript wieder her:

~# rm -f /var/qmail/bin/sendmail
~# mv /var/qmail/bin/sendmail-qmail /var/qmail/bin/sendmail

Untersuchen Sie die Datei /var/tmp/mail.send. Sie sollte Zeilen enthalten, die mit "X-Additional-Header:" beginnen und auf die Domain-Ordner verweisen, in denen sich die Skripte befinden, von denen die E-Mail-Nachrichten versendet wurden.

Mit dem folgenden Befehl können Sie alle Ordner anzeigen, von denen aus die PHP-Mailskripts ausgeführt wurden:

~# grep X-Additional /var/tmp/mail.send | grep `cat /etc/psa/psa.conf | grep HTTPD_VHOSTS_D | sed -e 's/HTTPD_VHOSTS_D//' `

Wenn Sie vom obigen Befehl keine Ausgabe erhalten, wurde keine E-Mail mit der PHP mail()-Funktion aus dem Verzeichnis der virtuellen Hosts von Parallels Plesk Panel gesendet.

Wenn die Datei /var/tmp/mail.send nur Folgendes enthält:

X-Additional-Header: /var/www

..., ohne auf einen bestimmten Domain-Ordner zu verweisen, dann ändern Sie die Berechtigungen für die Perl-Binärdatei:

~# chmod 700 /usr/bin/perl 

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c 29d1e90fd304f01e6420fbe60f66f838

Email subscription for changes to this article
Save as PDF