Registra todos os emails de saída do PHP em uma caixa Redhat

1

O IP de um de nossos servidores foi colocado na lista negra e eu gostaria de tentar descobrir o porquê. Há muitos hosts virtuais do Apache no servidor, portanto, o registro precisa ser dividido por domínio e, se possível, incluir o nome do arquivo de script PHP que iniciou a chamada de correio.

O servidor de e-mail é o Qmail e o servidor está executando o Redhat Linux.

Isso é possível? Em caso afirmativo, por favor detalhe como conseguir isto.

Obrigado.

    
por Treffynnon 11.04.2011 / 14:09

3 respostas

1

Concluímos a rota do wrapper do sendmail usando o seguinte recurso: link

There is a way to find what the folder the PHP script that sends mail was run from. Note, the paths can be slightly differ from the listed below depending on your OS and Plesk version:

1) create /var/qmail/bin/sendmail-wrapper script with the content:

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

Note, it should be the two lines including '#!/bin/sh'. 2) then create log file /var/tmp/mail.send and grant it "a+rw" rights, make the wrapper e> xecutable, rename old sendmail and link it to the new 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) Wait for an hour or so and revert sendmail back:

~# rm -f /var/qmail/bin/sendmail ~# ln -s /var/qmail/bin/sendmail-qmail /var/qmail/bin/sendmail

Examine /var/tmp/mail.send file, there should be lines starting with "X-Additional-Header:" pointing out to domains' folders where the scripts which sent the mail are located. You can see all the folders mail PHP scripts were run from with the following command:

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

f you see no output from the command above, it means that no mail was sent using PHP mail() function from the Plesk virtual hosts directory.

    
por 11.04.2011 / 18:21
0

Eu não sei sobre o registro do script PHP ou qualquer um dos bits relacionados ao servidor web, mas o qmail (e praticamente todos os outros MTAs) geralmente registra o que foi enviado - pelo menos o MAIL FROM & Endereços RCPT TO & o servidor de email entregou a mensagem para.

Você provavelmente pode analisar seus logs do qmail para ter uma ideia do que foi / está sendo enviado e que poderia tê-lo colocado na lista negra.
Além disso, se você souber em qual (is) lista (s) negra (s) você está, isso poderá lhe dar uma pista do que estava acontecendo.

    
por 11.04.2011 / 14:36
0

Se você estiver executando o PHP 5.3 ou posterior, você pode fazer com que o PHP registre todas as informações que você está procurando automaticamente, sem scripts de wrapper necessários:

link

    
por 06.06.2011 / 20:15