Article ID: 114845, created on Mar 20, 2014, last review on Aug 12, 2014

  • Applies to:
  • Plesk for Linux/Unix

Síntomas

Muchos emails se envían desde scripts PHP en el servidor. ¿Cómo puedo saber en qué dominios se están ejecutando dichos scripts si estoy utilizando Postfix?

Resolución

Nota: este artículo sólo es válido para Postfix. Si está usando el servidor de correo Qmail, consulte el siguiente artículo:

1711 Muchos emails se envían desde scripts PHP en el servidor. ¿Cómo puedo saber en qué dominios se están ejecutando dichos scripts?

Existe una forma de determinar desde qué carpeta se ejecutó el script PHP que envía los correos.

Nota: las rutas pueden variar un poco en función de su SO y de la versión usada de Parallels Plesk Panel.

  1. Cree un script /usr/sbin/sendmail.postfix-wrapper con el siguiente contenido:

    Cree un archivo y ábralo para poderlo editar:

    #touch /usr/sbin/sendmail.postfix-wrapper
    #vi /usr/sbin/sendmail.postfix-wrapper
    

    Añada el siguiente contenido:

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

    Tenga en cuenta que este debería estar formado por dos líneas, incluyendo #!/bin/sh.

  2. Cree un archivo de registro, /var/tmp/mail.send, y concédale permisos a+rw. Haga que el wrapper sea ejecutable, cambie el nombre del sendmailanterior y vincúlelo al wrapper nuevo. A continuación, ejecute los siguientes comandos:

    ~# 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. Espere una hora y entonces vuelva a modificar el sendmail:

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

Examine el archivo /var/tmp/mail.send. Debería poder ver líneas que empiecen por X-Additional-Header: que apunten a las carpetas del dominio donde se encuentran los scripts que enviaron los emails.

Puede ver todas las carpetas desde las que se ejecutaron scripts PHP de correo emitiendo el siguiente comando:

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

Si la ejecución de este comando no le devuelve ninguna salida, esto significa que no se envió ningún email usando la función mail() de PHP desde el directorio de hosts virtuales de Parallels Plesk Panel.

a914db3fdc7a53ddcfd1b2db8f5a1b9c 56797cefb1efc9130f7c48a7d1db0f0c e0aff7830fa22f92062ee4db78133079 29d1e90fd304f01e6420fbe60f66f838 caea8340e2d186a540518d08602aa065

Email subscription for changes to this article
Save as PDF