2013-03-14 5 views
2

몇 년 전 sendmail_path 설정 항목에서 php.ini 파일로 들어간 간단한 bash 코드 스 니펫을 발견했습니다. 인라인 bash 스 니펫의 목적은 모든 메일을 파일로 리디렉션하는 것이 었습니다. 불행히도 나는 그 발췌문을 잃어 버렸다. 내 개발 기계에 이것을 사용하고 싶습니다. 누구도 이런 발췌 문장을 본 적이 있습니까?모든 메일을 파일로 리디렉션

+0

단지 하나의 호출 할 수있다 ['티 (1) '] (http://pubs.opengroup.org/onlinepubs/9699919799 /utilities/tee.html)? – eggyal

+0

감사합니다. 이것도 작동합니다. – Joe

답변

3
$ php -d sendmail_path="cat - >> /tmp/mailfile" -r "var_dump(mail('[email protected]','foo','bar'));" 
bool(true) 
$ cat /tmp/mailfile 
To: [email protected] 
Subject: foo 
X-PHP-Originating-Script: 1000:Command line code 


bar 
+0

감사합니다. 이것은 또한 작동합니다 :'sendmail_path = 'tee -a /tmp/mail.out>/dev/null'' – Joe

+0

정말로,하지만 stdin 스트림을 stdout 스트림으로 복사하여 필요하지 않다면 dev/null로 파이프하는 이유는 무엇입니까? ? – Wrikken

+1

var_dump가 필요하지 않습니다. 이게 효과가 있니? 'sendmail_path = "cat - >>/tmp/mailfile"' – Joe

0

두 개의 전자 메일이 동시에 전송 될 때 "cat"기반 라이너가 경쟁 조건을 만들 수 있습니다. IMHO 그들은 저 부하 간단한 환경에 적합 할 수 있습니다.

저는 솔루션 기반을 추천합니다. on procmail. Procmail은 메일 함 파일로 전달하거나 maildir로 전달할 때 잠금을 사용할 수 있습니다.

sendmail_path="/usr/bin/procmail -m /etc/procmailrcs/catch-mail.rc" 

/etc/procmailrcs/catch-mail.rc :

# deliver messages to /tmp/mailfile mailbox file 
DEFAULT=/tmp/mailfile