2011-01-08 8 views
2

약간의 문제가 있습니다. mail() 함수를 사용하여 PHP를 통해 메일을 보내려면 작동하는 스크립트 (테스트 계정 - 공유 서버에서 작동)를 사용하고 있습니다.PHP mail() 함수가 메일을 전달하지 않음

방금 ​​전용 서버가있어서 작동 할 수있는 기능을 얻을 수 없었습니다. 나는 지난 10 시간 동안 BIND (SPF 레코드 용), dovecot, sendmail 및 postfix가 여러 가지 일을 시도하도록 다양한 문서를 읽는 데 보냈습니다.

제가 누락 된 것이 분명합니다.

PHP 코드가 제대로 작동합니다. 모든 헤더는 모든 것이 좋습니다. Google은 테스트 계정의 직접 사본이므로이 사실을 알고 있습니다. 따라서 문제는 서버 구성의 어딘가에서 발생해야합니다. sendmail에 대한 경로가 정확하며 sendmail이 (잘) 잘 작동합니다. 필자는 PHP mail() 함수의 부울 결과를 기반으로 "보낸"또는 "오류"를 전달하는 스크립트를 설정했습니다. 즉 :

if(mail($blah,$blah,$blah,$blah,$blah)) { echo "Sent"; } else { echo "Error";} 

결과는 항상 "보낸 사람"으로 표시되지만 전자 메일은 도착하지 않습니다. 누군가 내가 확인할 수있는 것들을 제안 할 수 있습니까? 완전히 새로운 것입니다 (24 시간 정도!).

미리 감사드립니다. 라이언

+2

받는 사람 전자 메일에서 스팬 폴더를 확인 했습니까 – tkt986

+0

전용 서버에서 실행중인 메일 데몬은 무엇입니까? –

+0

John, 태그는 sendmail을 나열합니다. –

답변

0

는 오류가 있는지 확인하기 위해 mailq command을 시도 했습니까? 자세한 내용은 answer to a similar question on ServerFault입니다.

+0

안녕하세요 모두 - 답장을 보내 주셔서 감사합니다. 스팸 필터에 아무것도 없습니다. sendmail을 실행하고 있지만 postfix가 실행 중입니다. 좋아, 그래서 일부 진행, 내가 '0'을 반환하기 전에 mailq 입력했지만 지금은 "mailq -Ac"를 입력 해요 그리고 난 8 오류가 있어요. – Ryan

+0

감사합니다. Matt. 나는 이것을 지금 읽을 것이다. – Ryan

+0

안녕하세요. Matt. 나는을 통해 일했고 Google smtp 서버를 통해 내 Gmail 계정으로 이메일을 보냈습니다. 그것은 통과했지만 보낸 사람 등이없는 스팸 폴더에서 끝났습니다. 그래서 이것이 SPF 문제라고 가정 할 때 맞습니까? 아니면 제가 놓친 다른 것이 있습니까? – Ryan

0

SMTP 서버를 설치 했습니까? php 메일 기능은 설치하지 않으면 작동하지 않습니다. 예를 들어, 리눅스에서는 postfix를 설치할 수 있습니다. Windows에서는 MS 교환이 그 예입니다.

+0

안녕 Alexandre, 네, postfix가 실행 중입니다. 그게 문제인지 아닌지 나는 잘 모르겠습니다. mailq에 지연된 오류가 발생했습니다. – Ryan

관련 문제