2009-12-15 3 views
1

나는 함께 메일 전송이 경고를 얻을 PHP 경고 : 스트림을 열지 못했습니다 : [function.mail] (1) 메일 홈 /에서 거부 권한을/...메일 : 스트림을 열지 못했습니다 : 사용 권한이 거부 되었습니까?

  • 가 SMTP
  • 로 ssmtp 및 Gmail을 사용하여 로그에
  • PHP 5.3.1
  • 아무것도 (오류없이)는
  • 메일은 파일의
  • 권한은 rwxrxrx있는 목적지에 도달하지

권한이 거부되었습니다.

심지어

메일 ("[email protected]", "제목", "몸") 같은 간단한 호출;

나는 아직도이 경고

+0

코드 스 니펫을 게시 할 수 있습니까? 적어도 send_mail() 호출. – jensgram

+0

죄송합니다. 기능을 붙여 넣으려고하지 않았습니다. –

+0

동일한 문제가 발생하여 php 일반 메일 링리스트에 대한 토론이 끝나면 확실한 답변을 찾았습니다. http://news.php.net/php.general/309710 –

답변

0

파일 사용 권한 문제로 판명되었습니다. 하지만 스크립트가 아니라 디렉터리에 있습니다. 나는 chmod -R 777 *을 실행했으며 경고는 다음과 같이 나타났습니다. 추가 조사에서 1이라는 파일을 찾았습니다.이 파일에는 보낸 메일의 로그가 들어 있습니다.

sudo chmod -R 755 * 
sudo chmod 777 1 

F #의 $ %^% 비밀의 PHP 오류 메시지

+3

이것은 나쁜 해결책이다. 적절한 해결책은 Packet Tracer의 답변에 따라 달라진다. 아파치가 실행되는 사용자가 파일 소유권을 변경하면 파일에 쓸 수있다. – Meogi

+0

루트 액세스 권한이 있거나 서버의 구성을 수정할 수있는 경우 패킷 추적기가 해결책이 될 수 있습니다. 그렇지만이 경우는 –

0

당신이 그것을 단순화 경우 작동 하는가를 받고?

$mail_sent = mail('[email protected]', 'subject', 'message'); 

그렇다면 메일이 작동하는 것입니다.

그 후, 나는 $ eol 물건을 제거하고 수정하는지 확인합니다. 그렇지 않다면 헤더 블록을 제거하고 작업이 시작될 때까지 계속 제거해야합니다.

+0

음, 사실, 나는 혼자 우편으로 전화해서 경고를 받는다. 그래서 내가 어떤 소스 코드도 넣지 않았다. 나는 mail ('[email protected] ','subject ','message ')을 넣음으로써 경고를 받는다; 메일이 작동해도 문제없이 목적지에 도착하지만 경고는 여전히 거기에 있습니다 ... –

+0

/home/.....에 대한 사용 권한은 무엇입니까? 적어도 읽어야합니다. chmod 777, 테스트 메일 ('[email protected] ','제목 ','메시지 ')을 시도합니다. 작동하는지 확인하십시오. 그 후 작업을 거꾸로 잠급니다. 또한 상위 디렉토리에서 execute를 부여해야 할 수도 있습니다. – easement

+0

그럴 경우 나는 그것을 그냥 억제 할 것이다 :'@mail ('address ...'. – jensgram

9

문제는 웹 서버의 사용자가 아닌 것을 : 경고는 그가

해결책이 파일을 열 수 없음을 말해 PHP이었다 메일 로그 파일을 쓰고 읽을 수 있습니다. 프로퍼 구성의 경우 :

1) 전자 메일 로깅을위한 폴더와 파일을 만듭니다. 예 :

touch /var/log/php5/mail.log 

2) 로깅 파일을 PHP로 설정하십시오.INI :

mail.log = /var/log/php5/mail.log 

3) 소유자와 필요한 경우 해당 폴더/파일에 대한 그룹 설정 : 경우 필요에

ls -la /var/log/php5 

체크 소유자와 그룹의 변경 그룹 (귀하의 웹 서버 그룹이 무엇이든 www 데이터를 변경하십시오)

sudo chgrp -R www-data /var/log/php5 

필요에 따라 소유자를 변경하십시오. 귀하의 웹 서버 사용자가 무엇이든 상관없이 www- 데이터)

sudo chown -R www-data /var/log/php5 
+2

일을하는 것이 가장 좋은 해결책은 아닙니다. sudo chmod 777 1 –

+1

Packet 's Tracer의 의견에 완전히 동의합니다 .OP 솔루션은 좋지 않은 접근입니다. – Meogi

+0

@Meogi +1 this acc 777 권한으로 나쁜 결정을 받았다. – vladkras

관련 문제