2015-01-01 5 views
4
개발 환경에서만 사용하는 Xampp 서버가 있습니다. 실제 사이트를 보내지 않고 라이브 사이트에서 전송할 이메일을 미리 보려면이 서버에서 보낸 모든 이메일을 가로 채고 싶습니다. 나는 그들에게 특정 이메일을 보내거나 파일로 저장하는 대신에 그들에게 보낼 주소를 보내지 않고 보낼 수 있기를 원한다. 이렇게하면 실수로 테스트 중에 이메일을 보내지 않고 올바른지 확인할 수 있습니다.


Xampp Mercury Mail Server에서 보낸 모든 전자 메일을 가로 채기

나는 대답 here 와 비슷한 질문을 찾았지만이 질문에 대해 대화 상자 중 하나를 열 수있는 방법을 찾을 수 없습니다 그래서 그것은 아주 멀리 날 잡으려고하지 않았다. 당신의 도움에 미리


감사합니다!

답변

3

이 작업은 php.ini에서 sendmail 구성을 사용하여 수행 할 수 있습니다.

smtp_catcher.php라는 이름의 파일과 smtp_catcher.php에서 그런 다음 sendmail_path

sendmail_path = "php C:\path\to\file\smtp_catcher.php" 

이 블록 추가 설정 만들기 : 이제 당신이 사용해야합니다 무엇을 연장 확실하지 않다

#!/Applications/XAMPP/xamppfiles/bin 
<?php 

# create a filename for the emlx file 
list($ms, $time) = explode(' ', microtime()); 
$filename = dirname(__FILE__).'/'.date('Y-m-d h.i.s,', $time).substr($ms,2,3).'.emlx'; 

# write the email contents to the file 
$email_contents = fopen('php://stdin', 'r'); 
$fstat = fstat($email_contents); 
file_put_contents($filename, $fstat['size']."\n"); 
file_put_contents($filename, $email_contents, FILE_APPEND); 

# open up the emlx file (using Apple Mail) 
exec('open '.escapeshellarg($filename)); 

?> 

을 이메일을 볼 수는 있지만 나가는 모든 이메일을 잡아야합니다.

참고 : PHP는 창문의 환경 PATH

+0

덕분에 있는지 확인하십시오! 그것은 효과가 있었다. 너는 천재 야! – coder29

+0

php가 윈도우의 환경 경로에 없다면 추가하기 전에 컴퓨터를 재시작해야 할 수도 있습니다. – MrMadsen