> 백엔드 개발 > PHP 튜토리얼 > [PHP] 이메일을 보낼 때 mail() 함수가 실패합니다(sendmail 명령 및 postfix).

[PHP] 이메일을 보낼 때 mail() 함수가 실패합니다(sendmail 명령 및 postfix).

little bottle
풀어 주다: 2023-04-05 22:00:01
앞으로
2706명이 탐색했습니다.

1. PHP의 메일() 기능은 이메일을 보낼 수 있지만 성공적으로 테스트된 적이 없습니다. 이제 이유를 요약해 보겠습니다.

php의 메일 기능은 sendmail 명령을 기반으로 합니다. postfix 소프트웨어

2를 설치해야 합니다. 메일 기능인 php -i|grep sendmail

#🎜에 의해 호출되는 기본 명령인 PHP 구성 항목 sendmail_path를 확인하세요. 🎜## 🎜🎜#3 postfix 소프트웨어를 설치한 후에만 sendmail 명령을 사용할 수 있습니다. apt-get install postfix

소프트웨어 설치가 완료된 후 전송이 가능한지 테스트합니다. 명령줄 성공

eml 텍스트 파일 만들기, 콘텐츠는 가장 중요한 이메일 프로토콜 헤더입니다

Subject: title-testing
From: shihan2@sopans.com
To: 630892807@qq.com
Sorry, I'm testing. ~_~
로그인 후 복사

# 🎜🎜#

 /usr/sbin/sendmail -t -i -f shihan2@sopans.com < 2.eml
로그인 후 복사

-f 매개변수 뒤에 오는 내용은 from 값에 해당합니다. 일치하지 않으면 오류가 보고됩니다. /var/log/mail.log 로그 파일을 확인할 수 있습니다. 오류의 원인과 성공 여부를 확인하려면
#🎜 🎜#

from 값이 일치하지 않으면 로그에 표시된 정보

은 성공적인 정보 후 전송됩니다. 250ok

4. 파일을 만들고 php 함수를 사용하여 메시지를 보냅니다

이를 수정했습니다. /etc/php/7.0/cli/php.ini 구성 파일에서 from 매개변수는 테스트 중에 하드 코딩됩니다. 보낸 사람 사서함이 기록되지 않으면 전송이 항상 실패하고 501 구문: MAIL FROM:

(MAIL FROM 명령에 대한 응답)) , 보낸 사람이 보낸 편지와 일치하지 않습니다. #

구성 확인

# 🎜🎜#

php 파일 만들기#🎜 🎜#

<?php
$to=&#39;630892807@qq.com&#39;;
$subject = &#39;测试一下&#39;;
$message = &#39;我来测试&#39;;
$headers[] = &#39;From: shihan2@sopans.com&#39;;
mail($to, $subject, $message, implode("\r\n", $headers));
로그인 후 복사

테스트 성공

관련 튜토리얼:
php 프로그래밍 입문부터 마스터까지 전체 비디오 튜토리얼 세트

위 내용은 [PHP] 이메일을 보낼 때 mail() 함수가 실패합니다(sendmail 명령 및 postfix).의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿