PHP 메일()이 작동하지 않습니다

PHP 메일()이 작동하지 않습니다

mail()방금 그 기능이 작동하지 않는 걸 알아냈어요

저는 Debian을 사용하고 있습니다. 친구가 알려줘서 postfix를 설치했습니다(비록 제가 구성하지는 않았지만).

내가 phpinfo()를 수행하면 다음과 같은 결과가 나타납니다.

sendmail_path   /usr/sbin/sendmail -t -i    /usr/sbin/sendmail -t -i

하지만 이 디렉토리에는 다음과 같은 것이 없습니다sendmail

mail()이 작동하도록 하려면 어떻게 해야 하는지에 대한 아이디어가 있습니까?

감사합니다

답변1

Unix에서 대부분의 프로그램은 MTA(메시지 전송 에이전트)를 사용하여 메일 전송을 수행합니다. 프로그램이 메시지를 보내려고 하면 실행되어 /usr/sbin/sendmailstdin에서 전체 메시지를 제공합니다.

Sendmail MTA는 이런 방식으로 작동하는 최초의 MTA였으며(현재도 그렇습니다), 다른 MTA는 프로그램을 제공하는 것과 동일한 규칙을 따릅니다 /usr/sbin/sendmail.

[이 답변에서 Sendmail은 원래 MTA이고 sendmail(소문자)는 /usr/sbin/sendmail(현재 사용되는 모든 MTA와 함께 제공됨)입니다.]

PHP는 mail()Unix 전통을 따르며 메시지를 sendmail실행 파일에 전달합니다. 이는 MTA가 필요하다는 것을 의미합니다. 이미 Postfix를 설치했으니 좋습니다. 그러나 그것은하다바이너리가 있으므로 sendmail에 없으면 /usr/sbin/다른 곳에 설치해야 합니다. 아마도 /usr/local/sbin/소스에서 컴파일했다면?

Postfix를 다시 설치하면 문제가 해결될 수 있습니다. 그렇지 않은 경우 처음에 Postfix를 어떻게 설치했는지와 같은 세부 정보로 질문을 업데이트하십시오.

sendmail가 아닌 다른 곳에 있는 경우 /usr/sbin/PHP 구성을 편집해야 합니다 php.ini. 일반적으로 에 있고 /etc/php5/데비안에는그것들의. ( cgi/일반 CGI/FCGI용, apache2/Apache PHP 모듈용, cli/PHP가 명령줄에서 사용되는 경우용입니다.)

관련 정보