We had some spam problems last week, one of them caused by a form that wasn’t properly escaped. While that problem was fixed, the real problem was that it was hard to figure out what script had the issue.
To solve this, I wrote a sendmail wrapper for use by PHP (though really it could be used by anything) that logs the message along with the date, a message id (also inserted in th e headers) and the current directory (which gives the location of the original script).
It also extracts out the domain name from the current directory, but this is server specific so you’ll need to change the pattern to match your file system.
Eventually I’d like to include support to check for a maximum number of recipients, and maybe some other heuristics to check for spam.
You can get the script at:
You should save this file as /usr/local/sbin/sendmail_logged.
The reporting script is at:
There are instructions in this file for how to add it to cron.
Let me know if you have any comments, suggestions, do any improvements, or find any bugs.