2012-02-29 4 views
4

전체, PHP로 이메일을 보낼 수있는 표준 메일 코드가 있습니다.이메일이 성공적으로 전송되었는지 확인

$to = $resultset['email_address']; 
$subject = "New client inquiry from Website.com"; 
$message = $email_message; 
$from = $your_email; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers,"-f $from"); 

변수는 내 코드의 앞부분에 만들어집니다. 그러나 확인하고 싶은 것은 메일 기능이 성공적으로 실행되었는지 확인하는 것입니다. 이 코드를 사용하면 전자 메일을 보낸 적이 있는지 여부와 "실패"가 표시되지 않은 경우 어떻게 결정할 수 있습니까?

+1

if (! mail ($ to, $ subject, $ message, $ headers, "-f $ from")) {echo "failure"; }이게 작동하는 것 같아 – jribeiro

답변

12

간단히 : PHP mail() 명령으로는 불가능합니다.

mail()의 반환 값은 메일이 MTA에 성공적으로 전달되었는지 여부 만 나타내며 전송 된 경우는 표시되지 않습니다. 예를 들어 MTA가 후위이며 후위 서비 스가 중지 된 경우 mail()은 우회로 메일을 대기열에 넣을 때 행복하게 true을 반환합니다. 그러나 postfix가 수동으로 시작되지 않거나 올바르게 구성되지 않은 경우 절대로 전송되지 않습니다.

정말로 메일을 보내려면 소켓을 통해 MTA에 문의해야합니다. 이를위한 프레임 워크가 있습니다.

+1

+1, 좋은 대답 – Alex

+1

질문이 무엇을 제공하는지, PHP가'$ mail = mail ($ to, $ subject, $ message, $ headers, "- f $ from"); if (! $ mail) {echo "fail";}'그러나이 답변과 마찬가지로, 실제로 보낼지 말할 수 없다 * –

관련 문제