Uma possível solução seria usar um wrapper para o comando sendmail, por exemplo, você pode criar um script como este:
#!/bin/sh
# file: sendmail-wrapper-php
# env vars: ${HTTP_HOST}, ${REMOTE_ADDR}, ${SCRIPT_NAME}, ${PWD}, ${UID}
# ....
# check and alert
#send email.
/usr/sbin/sendmail -t -i $*
e php_set_envs.php
definem algumas variáveis PHP para o ambiente shell:
<?php
putenv("HTTP_HOST=".@$_SERVER["HTTP_HOST"]);
putenv("SCRIPT_NAME=".@$_SERVER["SCRIPT_NAME"]);
putenv("SCRIPT_FILENAME=".@$_SERVER["SCRIPT_FILENAME"]);
putenv("DOCUMENT_ROOT=".@$_SERVER["DOCUMENT_ROOT"]);
putenv("REMOTE_ADDR=".@$_SERVER["REMOTE_ADDR"]);
Agora você força todos os clientes a usar esse script de wrapper em vez do original /usr/sbin/sendmail
binary. Modifique seu php.ini
e adicione / altere:
sendmail_path = /usr/sbin/sendmail-wrapper-php
auto_prepend_file = /www/php/php_set_envs.php
Certifique-se de que tenha permissões de acesso corretas:
$ chown root /usr/sbin/sendmail-wrapper-php
$ chmod 755 /usr/sbin/sendmail-wrapper-php
Espero que isso ajude.