2014-06-11 2 views
0

나는sendmail/php가 작동하지 않는 이유를 어떻게 테스트 할 수 있습니까?

; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). 
; http://php.net/sendmail-path 
sendmail_path = /usr/sbin/sendmail -t -i 

PHP는 일반적으로 잘 작동 ... 내 생각, php.ini 파일이 올바르게 구성해야합니다. phpinfo()는 괜찮아 보입니다.

내가 테스트 메시지를 보내는 데 사용하고 스크립트를 가지고 있고, 그것이 작동 주장 ..

<?php 
ini_set('display_errors', 1); 
error_reporting(E_ALL); 
$from = "[email protected]"; 
$to = "[email protected]"; 
$subject = "PHP Mail Test script"; 
$message = "This is a test to check the PHP Mail functionality"; 
$headers = "From:" . $from; 
mail($to,$subject,$message, $headers); 
echo "Test email sent"; 
?> 

난 항상라는 메시지가 얻을 : "테스트 이메일이 전송"을

그러나 아무것도 gmail에 나타납니다 ?? 무엇이 문제를 해결해야합니까?

+0

실제로 보내는 지 확인하는 문장을 작성하지 마십시오. 당신은 단순히'test email sent'를 출력합니다. 당신은 if else 문을 만들어야합니다. – Dorvalla

답변

1

이 시도 :

if(mail($to,$subject,$message, $headers)) 
{ 
echo "Test email sent"; 
} 

메일이 전송되는 경우는 확인하고이 경우, 그것은 "전송 테스트 이메일을"에코 것입니다.

+0

그냥 흰색 화면. : – some1

0

mail()은 부울 함수입니다.

$check = mail($to,$subject,$message, $headers); 
var_dump($check); 

var_dump는 true 또는 false를 반환합니다.

false 인 경우 구성 또는 코드에 문제가 있습니다.

그러나 mail() 함수를 잠시 디버깅하려면 OS가 무엇인지 알아야합니다. 어떤 유형의 웹 서버를 사용합니까?

+1

안녕하세요. 아주 좋은 해결책이 될지도 모르지만 일반적으로 문제가 해결되는 이유에 대한 설명이 좋은 양식으로 간주됩니다. 초보자도 스택 오버플로에 와서 자신의 문제가이 대답에 의해서도 해결 될 수 있는지를 안다. 그래서 그것을 알아내는 데 도움이된다. :) –

+0

나는 마지막 두 줄을 그 것으로 바꾸었고 그냥 흰색으로 검게 만들었다. – some1

+0

@ some1 업데이트 답변. 귀하의 OS와 웹 서버 유형을 알아야합니다. – skycrew

1

가장 빠르고 가장 먼저 스팸 폴더를 확인하십시오. Gmail은 잘 정립 된 메일 서버에서 오는 메시지를 걸러내는 경향이 있습니다.

둘째, 전자 메일을 보내는 서버의 센드 메일 로그를 확인하십시오. 로그에는받는 SMTP 서버가 메시지를 수락했는지 여부가 표시됩니다.

mail 함수가 성공을 리턴한다는 것은 로컬 sendmail 스크립트가 전자 메일을 수락했음을 의미하며 전자 메일이 전송 된 것은 아닙니다.

+0

그의 경우, 그는 실제로 확인되지 않고 메시지를 반향합니다. 그의 에코 메시지를 수행하거나 규제하는 else 문은 없습니다.그러나 메일 기능이 실제로 단순히 받아들이는 것이지 전송하는 것은 아닙니다. – Dorvalla

1

연락처 양식을 사용하는 경우 변수를 다시 확인하십시오. 귀하의 경우에는 하드 코딩되어 있지만 항상 점검을 수행하는 것이 좋습니다. 이것은 간단한 체커입니다. (메시지와 함께 보낼 변수에 대한 내 수표를 편집했습니다)

if (mail ($to, $subject, $body, $headers)) { 
     echo '<p>Message Send.</p>'; 
    } else { 
     echo '<p>Something went wrong, not delivered.</p>'; 
    } 
+0

$ body를 $ message로 변경했습니다 - 여전히 "something went wrong":( – some1

+1

글쎄, 적어도 여러분은 아마도 mailfunction에 문제가 있다는 것을 알고 있습니다.이 함수는 피드를 받아들이지 않을 것입니다. 함수가 제대로 설정되지 않았거나 (허위로 쓰여진 변수) 서버가이 메시지를 보내지 않도록 설정되어 있지 않습니다. 그래서 INI 파일을 잘못 설정했을 수 있습니다. – Dorvalla

관련 문제