2009 2009년 8월 28일
PHP의 메일 함수에 보낸 메일의 기록을 유지
PHP 메일 () 함수는 센드메일 소프트웨어를 통해 전송 보낸 메일에 기본적으로 정의된. 사용자가 파일을 찾을 수 없다거나하는 또 센드메일의 수준을 향상시켜 로그 설정은 전송되었습니다. 당신이 스팸을 전송하는 사용자에 전자 메일을 사용하여 검출하기 어렵다는 웹 자원의 공급자 역할을하는 기계를 가지고 특히 경우. 사업과 사이에 다리로 신경이 따른다 PHP 센드메일 메일 서버로 사용하는 방법도 기록을 유지하는 소프트웨어를 추가할 수 있습니다. 마찬가지로 다음과;
vi /usr/sbin/sendmail.spamkontrol
말씀에
#!는 / usr / 빈 / 펄
# 엄격한 사용;
환경을 사용;
내 $ 날짜 =`데이트`;
chomp $ 날짜;
오픈 (INFO, ">>은 / var / 로그 / spam_log") | | 다이 "파일은 부팅할 수 없습니다 :: 달러!";
내 $ UID = $>;
내 @ 정보 = getpwuid ($ UID);
{($ REMOTE_ADDR) 경우
INFO "$ 날짜 - $ REMOTE_ADDR이 SERVER_NAME $에 SCRIPT_NAME N \ n을 $을 조회"인쇄;
인쇄 '\ N';}
또 {인쇄 INFO "$ 날짜 - $ PWD - @ 정보 \ N";
인쇄 '\ N';}
내 $ mailprog = '는 / usr / sbin / 센드메일';
foreach (@ 변수는 argv) {
$ ARG = "$ ARG". "$ _";
}오픈 (MAIL, "| $ mailprog ARG $") | | 다이 "$ mailprog 열 수 없습니다 : $ N을";
(잠시) {
메일을 인쇄;
}
(INFO) 닫습니다;
(메일) 닫습니다;
당신은 파일을 저장 후;
chmod +x /usr/sbin/sendmail.spamkontrol
touch /var/log/spam_log
chmod 0777 /var/log/spam_log
php.ini 파일을위한 새로운 조리법의 형태로 필요한 능력이 부여 후 :는 / usr / sbin / sendmail.spamkontrol에서 센드메일을 아파치에서 가상 호스트의 정의로서 다음을 입력하거나 설명을 입력할 수 있습니다.
php_admin_value sendmail_path '/usr/sbin/sendmail.spamkontrol'
당신은 또한 각 VirtualHost 항목 정의에 대해이 값을 입력할 수 있습니다. 은 / var / 로그 / spam_log 파일에 아파치를 다시 시작한 후 같은 표본 기록으로 출력 파일을 발급합니다.
[root@immortal ~]# tail /var/log/spam_log
Fri Aug 28 15:37:20 EEST 2009 - /home/testuser1 -
Fri Aug 28 15:45:01 EEST 2009 - /home/testuser2 -
Fri Aug 28 15:53:30 EEST 2009 - /home/testuser1 -
Fri Aug 28 15:57:43 EEST 2009 - /home/testuser1 -
Fri Aug 28 15:58:47 EEST 2009 - /home/testuser2 -
Fri Aug 28 16:21:21 EEST 2009 - /home/testuser2 -
로그 파일 크기가 증가하면 회전수를 기록, 다음을 추가,은 / etc / logrotate.conf 파일 때문에.
# SPAM LOG rotation
/var/log/spam_log {
monthly
create 0777 root root
rotate 1
}
[Mattf 및 ramprage'e 감사]
