메일 : 스트림을 열지 못했습니다 : 허가가 거부 되었습니까?
문제
PHP 경고와 함께 메일을 보내는이 경고를받습니다 : Mail (1) [function.mail] : 열기 실패 : 허가 거부 /home /...
- SSMTP 및 Gmail 사용 SMTP로 사용합니다
- PHP 5.3.1
- 로그에 아무것도 없음 (오류 없음)
- 메일이 목적지에 도달합니다
- 파일의 권한은 rwxrxrx입니다
허가가 무엇에 대한 허가를 거부 했습니까?
심지어 간단한 것을 부르는 것조차도
mail ( "mail@domain.com", "subject", "body");
나는 여전히이 경고를 받고있다
해결책 3
결국 파일 권한 문제로 판명되었습니다. 그러나 스크립트가 아니라 디렉토리에 있습니다. 나는 달렸다 chmod -R 777 *
그리고 경고가 갔다. 추가 검사 결과 나는라는 파일을 발견했습니다 1
, 그리고이 파일에는 보낸 메일의 로그가 포함되어 있습니다. 경고는 PHP 가이 파일을 열 수 없다고 말한 것입니다.
해결책:
sudo chmod -R 755 *
sudo chmod 777 1
F#$%^% 암호화 PHP 오류 메시지
다른 팁
문제는 웹 서버 사용자가 메일 로그 파일을 작성 및/또는 읽을 수 없다는 것입니다. Propper 구성의 경우 :
1) 이메일 로깅의 폴더와 파일을 만듭니다. 예를 들어:
touch /var/log/php5/mail.log
2) php.ini에서 로깅 파일을 설정하십시오.
mail.log = /var/log/php5/mail.log
3) 필요한 경우 해당 폴더/파일의 소유자와 그룹을 설정하십시오.
소유자와 그룹을 확인하십시오
ls -la /var/log/php5
필요한 경우 그룹을 변경하십시오 (웹 서버 그룹이 무엇이든 www-data 변경)
sudo chgrp -R www-data /var/log/php5
필요한 경우 소유자를 변경하십시오 (웹 서버 사용자가 무엇이든 www-data 변경)
sudo chown -R www-data /var/log/php5
단순화하면 작동합니까?
$mail_sent = mail('address@domain.com', 'subject', 'message');
그렇다면 메일이 작동한다는 것을 알고 있습니다.
그 후, 나는 $ eol 물건을 제거하고 그것이 수정되는지 확인합니다. 그렇지 않은 경우 헤더 블록을 제거하고 작동이 시작될 때까지 계속 제거합니다.