up
ГлавнаяБлогБезопасностьЖелезоПрограммированиеАдминистрирование
LinuxHDDCentOSRAMPHPFreeBSDHTMLSSDBashDebianMySQLPerlBenchmarkCPU

Популярные статьи
Категория “Администрирование

PHP-mail + логи

В PHP версии >=5.3 есть отличный параметр mail.log, позволяющий вести лог отправки писем: из какого скрипта, кому.
В более старых версиях PHP данного параметра нету, по этому напишем маленький скриптик на замену sendmail.

mv /usr/sbin/sendmail /usr/sbin/sendmail.real
vi /usr/sbin/sendmail

Создаем perl-скрипт:

#!/usr/bin/perl
# use strict;
use Env;
my $date = `date`;
chomp $date;
open (INFO, ">>/var/log/sendmail.log") || die "Failed to open file ::$!";
my $uid = $>;
my @info = getpwuid($uid);
if($REMOTE_ADDR){
        print INFO "$date - $REMOTE_ADDR run $SCRIPT_NAME at $SERVER_NAME\n";
} else {
        print INFO "$date - $PWD - @info\n";
}
my $mailprog = '/usr/sbin/sendmail.real';
foreach (@ARGV){
        $arg="$arg" . " $_";
}
open (MAIL,"|$mailprog $arg") || die "cannot open $mailprog: $!n";
while (<STDIN>){
        print MAIL;
}
close (INFO);
close (MAIL);
 
chmod +x /usr/sbin/sendmail
touch /var/log/sendmail.log
chmod g-r,o-r+w /var/log/sendmail.log

Отправляем письмо и наблюдаем его в лог-файле:

tail /var/log/sendmail.log
 

Или второй вариант - изменить в php.ini 

;sendmail_path

на 

sendmail_path = "tee -a /var/log/php.mail.log | /usr/sbin/sendmail -t -i"
Sunday, 17 August 2014, 19:12Прочитано 69 раз
Ссылка на страницу:

comments powered by Disqus

Чаще всего ищут

Статистика блога
Статтей: 177
Безопасность: 9
Железо: 19
Программирование: 14
Администрирование: 134