2016-11-22 2 views
0

나는 여기에 관련된 모든 게시물을 이것과 관련 있다고 생각한다. 나는 이것이 리눅스 파일 권리와 관련이 있다고 느끼지만 확실하지는 않다. 내 환경은 phpMyAdmin 등으로 Apache 2.4 및 Php7을 실행하는 테스트 Centos7 상자입니다. sendmail [email protected]을 사용하여 메일을 보낼 수 있습니다. 나는 이것을 시험했다. 내 php.ini 파일 (들)에서
나는 "sendmail_path = /usr/sbin/sendmail -t -i;"PHP 7 Mail() not working

$to = "[email protected]"; 
$subject = "My subject"; 
$txt = "Hello world!"; 
$headers = "From: [email protected]" . "\r\n" . 
      "CC: [email protected]"; 
$mail = mail($to,$subject,$txt,$headers); //I have tried with no headers as well. 

메일 함수가 false를 반환해야합니다.

+0

sendmail_path에'sendmail'을 입력했습니다. 나는'sendmaill'이되어서는 안된다고 가정하고 있습니다. –

+0

안녕하세요, 왜 PHPMailer 나 SwiftMailer 같은 외부 라이브러리를 사용하지 않습니까? –

+0

글쎄, 나는 mail()이 올바른지 생각했다. 저의 상사는 메일이이를 완성하는 가장 빠른 방법이라고 설명했습니다. 나가는 길에 mail()이 있습니까? 다른 것 위에 사용하는 이유가 있습니까? –

답변

1

이 문제는 여러 가지 이유로 메일()을 더 이상 사용하지 않고 외부 SMTP (예 : GMAIL)로 PHPMailer을 사용하지만 메일()을 계속 사용하려면 Sendmail, Exim 또는 Postfix가 서버에 설치되어 있습니다.

터미널에서 메일을 보낼 수 있다면 php.ini에서 문제가 생길 수 있습니다. 터미널에서 메시지가 실패하면 Postfix/Sendmail/Exim은 오류 메시지를 기록합니다.

mail()을 사용할 수있는 권한이 있다면 서버 제공 업체에게 문의하십시오. 일부 서버는 스팸으로 인해이 기능을 차단하고 수동 승인이 필요합니다.

+0

아침에 확인하겠습니다. Exim은 서버에 없었습니다. 필자는 phpmailer에 대해서도 살펴볼 것입니다. –

+0

오른쪽. 당신은 단지 세 가지 프로그램 중 하나만 필요로합니다. 단지 하나만 가지고있는 것이 좋으며 과거에는 후위에서만 사용했습니다. postfix와 sendmail을 설치 한 경우 충돌이 발생할 수 있으며 메시지가 실패하면 모든 로그를 확인하십시오. – bruno