2010-05-20 3 views
0

저는 smtp를 사용하여 메일을 보내려면 php 5.3 apache 2.2 및 phpmailer 라이브러리를 사용하고 프로세스는 ok입니다.PHP와 Apache가 차단하는 동안 smtp를 사용하여 전자 메일을 보냅니다.

문제는 smtp를 사용하여 전자 메일을 보내는 데 시간이 걸리고 이러한 일이 발생하는 동안 아파치는 다른 요청을 처리하지 않습니다.

+0

대기열에 넣고 백그라운드 프로세스를 사용하여 보냅니다. –

+0

Apache가 블로킹 중이면 잘못 구성되었을 수 있습니다. 이 소리는 serverfault에 속합니다. – Josh

+0

"대기열에두고 백그라운드 프로세스를 사용하여 보내십시오.".... 어떻게 할 수 있습니까? – Danilo

답변

0

전자 메일 요청을 처리하는 인스턴스가 완료되는 데 시간이 오래 걸린다는 가정하에 weberver의 모든 인스턴스를 차단하지 않습니까? 후자는 이 아니며은 모든 PHP 코드에서 공유 뮤텍스가없는 경우 발생합니다. 심지어 만 정적 페이지가 아닌 PHP 페이지에 대한 요청에 영향을 미칩니다.

실제로 복용하는 데 걸리는 시간을 알려주시겠습니까?

MTA (메일 전송 에이전트)는 모두이며 메일 대기열에 대해서는 매우 최적화되어 있으므로 Frank Farmer의 제안은 매우 나쁜 것입니다.

OS에 대한 단서와 MTA의 위치를 ​​알려 주시면 도움이 될 것입니다.

메일 지연이나 IP 주소에서 IP 주소를 사용하고 계십니까? 로컬 MTA에 대해 스마트 릴레이가 구성되어 있습니까 (이 오류는 대개 메일이 보내지지만 꽤 오랜 시간이 지나면 만료 됨).

MTA 로그를 확인 했습니까?

C.

+0

실제로, smtp 서버에 연결되어있는 동안 메일을 보내는 데 5 초에서 15 초가 걸리므로 데이터를 보내십시오. MTA? ... 잘 모르겠습니다 ... 저는 PHP에서 최신입니다 서버는 리눅스 공유 호스팅입니다. – Danilo

+0

메일 전송 에이전트 용 MTA statnds - 모든 메일 라우팅/대기열을 담당하는 데몬입니다. 공유 호스팅 플랫폼에 있다면 오류를 디버그하거나 해결할 수 없습니다. 당신의 공급자에게 불평하십시오. – symcbean