2013-08-20 2 views
0

register_shutdown_function을 통해 호출되는 기능 내에서 mail()을 호출하여 전자 메일을 보내는 일부 소프트웨어를 사용하고 있습니다.
이것은 잠시 동안 작동하는 것처럼 보였으 나 최근 mail()은 매회 FALSE을 반환하기 시작했습니다. mail()에 대한 동일한 호출이 정상적인 컨텍스트에서 호출 될 때 성공합니다.register_shutdown_function 및 mail()

이 문제를 일으킬 수있는 일종의 서버 설정이나 모듈이 있습니까?
내 웹 주최자가 불행히도 이것에 대해별로 도움이되지 않습니다.

나는 다음과 같은 확장자를 가진 PHP 5.3.26 (apache2handler)을 사용하고 있습니다 :

코어, PDO,의 Phar, 반사, SPL, SQLite는, SimpleXML을, 젠드 가드 로더, apache2handler, APC, bc 수학, bt2, 캘린더, ctype, 컬, 날짜, dbt, dbase, dom, ereg, exif, fileinfo, 필터, ftp, gd, geoip, gettext, hash, iconv, imagick, imap, intl, ionCube Loader, json, ldap , libxml, mbstring, mcrypt, mhash, ming, mysql, mysqli, openssl, pcre, pdf, pdo_mysql, pdo_sqlite, posix, pspell, 세션, shmop, 비누, 소켓, sqlite3, 표준, suhosi N, SYSVMSG, SYSVSEM, SYSVSHM, 깔끔, 토크 나이, WDDX, XML, XMLReader를, XMLRPC, XmlWriter를, XSL, 우편, ZLIB 여기

suhosin의 원인이 될 수 있습니다 문제?

+0

일반 우편() 통화로 이메일을 보내고 있습니까? – tholu

+0

예. mail()에 대한 동일한 호출은 일반적인 컨텍스트에서 호출 될 때 성공합니다. – Nils

+1

일부 소스 코드를 공유 할 수 있습니까? – tholu

답변

0

다른 사람이이 문제를 겪는 경우 : 실행 디렉토리가 일반/www 디렉토리와 다른 다른 컨텍스트에서 종료 함수가 호출되어 문제가 발생했습니다. 해결책은 mail()을 호출하기 전에 chdir('xxx')을 추가하여 www 디렉토리로 다시 변경하는 것이 었습니다.

+0

'mail()'은 작업 디렉토리에 대해 신경 쓸 수 없습니다. 파일을로드하거나 상대 경로를 사용하여 명령을 실행하려고하는 다른 코드가있을 수 있습니다. –

+0

이유는 모르겠지만 이것이 분명히 문제입니다. 나는 아무것도하지 않고 함수 내부에서 mail()을 호출하는 테스트 케이스가있다. chdir()이 없으면이 작업은 실패하고 chdir()은 작동합니다. 나는 이것이 내 hoster 측의 이상한 보안 설정과 관련이 있을지도 모른다고 생각하지만 확실하지 않습니다. – Nils

관련 문제