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 명령줄을 사용하여 서버에서 직접 문제가 없습니다.
sudo /etc/init.d/apache2 restart
이때 원래
하면
이메일이 성공적으로 전송됩니다.
위 내용은 PHP에서 메일 기능을 사용할 수 없는 이유에 대한 분석 및 해결 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!