>백엔드 개발 >PHP 튜토리얼 >PHP에서 메일 기능을 사용할 수 없는 이유에 대한 분석 및 해결 방법

PHP에서 메일 기능을 사용할 수 없는 이유에 대한 분석 및 해결 방법

伊谢尔伦
伊谢尔伦원래의
2017-06-27 10:53:192951검색

PHP에서는 메일 기능 mail()을 사용하려면 설치되어 실행 중인 메일 시스템이 필요합니다. 사용되는 메일 시스템 프로그램은 php.ini 파일에 설정되어 있습니다.

다음 코드를 사용하여 이메일을 보내지만 항상 전송이 실패합니다.

[PHP] 일반 카피 인쇄 보기?


<?php  
$to = "xxxxxxxx@qq.com";  
$subject = "Test mail";  
$message = "Hello! This is a simple email message.";  
mail($to,$subject,$message);  
?>

조사 후, PHP에서 메일 기능 mail()을 사용할 수 있으려면 메일 시스템이 설치되어 실행 중이어야 합니다. 사용되는 메일 시스템 프로그램은 php.ini 파일에 설정되어 있습니다. 구체적인 해결 방법은 다음과 같습니다.

1. sendmail 설치
sudo apt-get install sendmail
sudo apt-get install sendmail-cf
sudo apt-get install mailutils
2. /etc/mail/sendmail.mc를 엽니다. 그리고 다음 줄을 찾으세요:
DAEMON_OPTIONS('Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl
Change 127.0.0.1 to 0.0.0.0
다음 명령을 실행하여 백업하세요. 이전
구성 파일
, 새 구성 파일 생성: cd /etc/mailmv sendmail.cf sendmail.cf~
m4 sendmail.mc > sendmail.cf
echo "이것은 테스트 메일입니다. " | mail -s "test" xxxxxxxx@qq.com
주의사항: 본 이메일은 스팸으로 수신됩니다. 또한, 163 메일함을 이용하시는 경우 바로 필터링되어 수신이 불가능할 수 있습니다.
4. php.ini 파일을 구성합니다.
/etc/php5/apache2/php.ini를 열고 다음 줄을 찾습니다:
; sendmail_path =
줄을 다음으로 변경합니다: sendmail_path = /usr/sbin/sendmail -t

특별합니다. "-t" 매개변수가 필수라는 점에 유의해야 합니다. 이 매개변수가 누락되면 브라우저를 통해 원본 PHP 파일이 실행될 때 mail() 함수가 실행되지 않습니다. PHP 명령줄을 사용하여 서버에서 직접 문제가 없습니다.

5. apache를 다시 시작

sudo /etc/init.d/apache2 restart


이때 원래

php 코드를 다시 실행

하면
이메일이 성공적으로 전송됩니다.

위 내용은 PHP에서 메일 기능을 사용할 수 없는 이유에 대한 분석 및 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.