Article ID: 114845, created on Nov 6, 2013, last review on Aug 12, 2014

  • Applies to:
  • Plesk for Linux/Unix

Sintomi

Alcuni messaggi e-mail sono inviati da script PHP sul server. Come posso trovare i domini di esecuzione di questi script, se utilizzo Postfix?

Soluzione

Nota: Questo articolo è per Postfix. Se usi il server di posta Qmail, leggi invece il seguente articolo:
1711 Molti messaggi e-mail vengono inviati dagli script PHP sul server. Come posso trovare i domini nei quali questi script sono in esecuzione?

Esiste un modo per stabilire da quale cartella è stato eseguito lo script PHP che invia la posta.

Nota: In base alla versione di SO e Parallels Plesk Panel utilizzata, i percorsi potrebbero essere leggermente diversi da quelli elencati sotto.

  1. Creare uno script /usr/sbin/sendmail.postfix-wrapper con il seguente contenuto:

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

    Il contenuto deve essere ripartito in due righe, includendo #!/bin/sh.

  2. Crea un file di log, /var/tmp/mail.send, e garantisci i diritti a+rw; rendi il wrapper eseguibile; rinomina il vecchio sendmail; collegalo al nuovo wrapper:

    ~# touch /var/tmp/mail.send
    ~# chmod a+rw /var/tmp/mail.send
    ~# chmod a+x /usr/sbin/sendmail.postfix-wrapper
    ~# mv /usr/sbin/sendmail.postfix /usr/sbin/sendmail.postfix-bin
    ~# ln -s /usr/sbin/sendmail.postfix-wrapper /usr/sbin/sendmail.postfix
    
  3. Attendere un'ora e ripristinare il sendmail precedente:

    ~# rm -f /usr/sbin/sendmail.postfix
    ~# mv /usr/sbin/sendmail.postfix-bin /usr/sbin/sendmail.postfix
    

Esaminare il file /var/tmp/mail.send . Devono essere presenti righe che iniziano con X-Additional-Header: riferite alle cartelle di dominio in cui si trovano gli script che hanno inviato la posta.

Per visualizzare tutte le cartelle da cui sono stati eseguiti gli script PHP della posta, usare il seguente comando:

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

Se con il comando precedente non si ottengono risultati, significa che non è stata inviata della posta utilizzando la funzione PHP mail() dalla directory degli host virtuali di Parallels Plesk Panel.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c e0aff7830fa22f92062ee4db78133079 29d1e90fd304f01e6420fbe60f66f838 caea8340e2d186a540518d08602aa065

Email subscription for changes to this article
Save as PDF