Muchos mensajes de correo electrónico se envían desde scripts PHP en un servidor. ¿Cómo encontrar los dominios en los que se ejecutan estos scripts si se usa Qmail?

Nota: este artículo es aplicable para el servidor de correo de Qmail. Si está utilizando el servidor de correo Postfix, consulte: Muchos mensajes de correo electrónico se envían desde scripts PHP en un servidor. ¿Cómo encontrar los dominios en los que se ejecutan estos scripts si se usa Postfix?.

Muchos mensajes de correo electrónico se envían desde scripts PHP en el servidor. ¿Cómo puedo encontrar los dominios en los que se ejecutan estos scripts si utilizo Postfix?

Advertencia: el uso de este método puede provocar un aumento de la carga del servidor debido a los pasos adicionales de procesamiento para cada mensaje enviado al servidor de correo local. Si tiene problemas con la carga del servidor después de aplicar las instrucciones en el paso n. ° 2, revíselas siguiendo las instrucciones del paso n. ° 3.

Hay una manera de determinar desde qué carpeta se ejecutó el script PHP que envía correo.

Nota: Dependiendo de su sistema operativo y la versión de Plesk, las rutas pueden diferir de las enumeradas a continuación.

  1. Cree una secuencia de comandos /var/qmail/bin/sendmail-wrapper con el siguiente contenido:

    #touch /var/qmail/bin/sendmail-wrapper 
    #vi /var/qmail/bin/sendmail-wrapper

    Copie el contenido a continuación y péguelo en el archivo creado anteriormente:

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

    Tenga en cuenta que este script debe incluir dos líneas, incluyendo #!/bin/sh .

  2. Cree un archivo de registro llamado /var/tmp/mail.send y /var/tmp/mail.send derechos "a + rw". Haga que el contenedor sea ejecutable, cambie el nombre del antiguo sendmail y vincúlelo al nuevo contenedor:

    ~# 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. Espere al menos dos horas y luego vuelva a enviar sendmail:

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

Examine el archivo /var/tmp/mail.send . Debería haber líneas que comiencen con "X-Additional-Header:", apuntando a las carpetas de dominio donde se encuentran los scripts que enviaron el correo.

Puede ver todas las carpetas desde donde se ejecutaron las secuencias de comandos PHP de correo utilizando 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 no ve ningún resultado desde el comando anterior, no se envió ningún correo utilizando la función PHP mail () del directorio de hosts virtuales de Plesk.

Si el archivo /var/tmp/mail.send solo contiene:

 X-Additional-Header: /var/www 

... sin señalar a una carpeta de dominios particular, cambie los permisos para el binario de Perl:

 ~# chmod 700 /usr/bin/perl 

Desarrollo e Internet

Internet

  • Webs
  • eCommerce
  • Templates
  • Migraciones

Móviles

  • Android
  • iPhone
  • Multiplataformas
  • WebApps

Equipos

  • Windows/Linux
  • Ficheros
  • Databases
  • Servidores.


 

ExtreHost le ofrece además un programa de facturación ERP y una nube GRATIS a partir del hosting Basic.