php 5.3 đã được thiết kế để có được dấu vết thư tốt hơn, nhưng tôi không chắc điều đó có xảy ra không. (chỉnh sửa: có php 5.3 đã đăng nhập được xây dựng ngay bây giờ - php.ini có biến cấu hình mail.log sẽ ghi nhật ký sử dụng thư từ mã php.)
Chúng tôi đã giải quyết vấn đề bằng cách biến sendmail thành tập lệnh shell shell.
Trong php.ini đặt một trình gửi thư mới. Ví dụ:
sendmail_path = /usr/local/bin/sendmail-php -t -i
Tập lệnh sendmail-php chỉ cần sử dụng logger để lấy thông tin và sau đó gọi sendmail của hệ thống:
#!/bin/bash
logger -p mail.info -t sendmail-php "site=${HTTP_HOST}, client=${REMOTE_ADDR}, script=${SCRIPT_NAME}, filename=${SCRIPT_FILENAME}, docroot=${DOCUMENT_ROOT}, pwd=${PWD}, uid=${UID}, user=$(whoami)"
/usr/sbin/sendmail -t -i $*
Điều này sẽ đăng nhập vào bất cứ điều gì mail.info của bạn được đặt thành trong tệp syslog.conf.
Một đề xuất khác là cài đặt phần mở rộng php suhosin để thắt chặt các lỗ hổng trong PHP, trừ khi bạn đang chạy Debian hoặc Ubuntu, nơi đây đã là mặc định.