서버에서 메일을 보내는 데 문제가 있는지 어떻게 확인할 수 있습니까? 나는 간단한 테스트 실행 테스트 텍스트를 출력PHP 메일 문제 해결
if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}
을; 그러나 아무런 메일도 도착하지 않습니다.
어떻게 문제를 추적 할 수 있습니까? PHP 매뉴얼에서
서버에서 메일을 보내는 데 문제가 있는지 어떻게 확인할 수 있습니까? 나는 간단한 테스트 실행 테스트 텍스트를 출력PHP 메일 문제 해결
if(mail($to, $subject, $message)) {
echo 'Mail Sent';
}
을; 그러나 아무런 메일도 도착하지 않습니다.
어떻게 문제를 추적 할 수 있습니까? PHP 매뉴얼에서
꽤 긴 이야기입니다. mail()이 true를 반환하고 오류 로그에 오류가 없다고 가정하면 몇 가지 사항이 있습니다.
독일인 용으로 필자는 얼마 전이 문제에 대해 "포괄적 인"취지를 작성했습니다. here을 참조하십시오.
:
Return Values
Returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.
It is important to note that just because the mail was accepted for delivery, **it
does NOT mean the mail will actually reach the intended destination**.
그 다음 단계를 취할하는 방법을 확실하지,하지만 여기서 중요한 점입니다.
내가 처음 시작할 곳은 PHP 오류 로그이고, 그 다음에 sendmail 로그입니다. 또한 명령 줄에서 sendmail을 시도하고 PHP 구성을 확인하여 메일을 올바르게 보낼 수 있는지 확인하십시오.
당신이 리눅스 박스에있는 경우, 명령 줄에서이 작업을 수행, 마일스에 따라 : 당신은 이메일을받지 못한 경우
# echo “Body text.” | mail -s “Hello world” [email protected]
, 해당 상자의 메일 시스템에 문제가 있습니다. 여러분이 물어 본 PHP 질문과는 다른 질문입니다.
흠, 명령을 찾을 수 없습니다. echo "본문 텍스트" | mail -s "hello world"[email protected] -bash : mail : 명령을 찾을 수 없음 –
'메일 '은 어떻습니까 –
홀수 - 아무것도 반환되지 않았습니다. –
모든 문제 해결이 실패한 경우 - 알 수없는 이유 때문에 mail()이 false라고 가정하면 PHPMailer과 같은 메일 스크립트로 전환하여 mail()을 완전히 무시하고 SMTP를 통해 직접 연결할 수 있으며 광범위한 디버그 모드를 제공합니다 . 그렇게하면 작업 솔루션을 설정하거나 문제의 핵심을 찾을 수 있어야합니다.
나는 실제로 htmlMimeMail5도 시도했다. 나는 또한 SMTP를 사용한다고 생각하지만, 같은 행운을 지니고 있었다. –
클래스에 디버그 모드가 있습니까? 로그를 확인할 필요없이 SMTP 오류 메시지를 다시 받아야합니다. PHPMailer 확실히 할 수 있습니다. –
여기에서 라이브 웹 서버 또는 개인 개발 샌드 박스의 라인을 따라 작업하고 있습니까? (즉, 집에있는 기계?) 후자 인 경우 ISP (Cox)가 내 발신 메일 포트를 필터링하여 과거에 많은 문제가 있었다고 말할 수 있습니다. (그들은 그들이 그렇게하지 않는다고 말할 것이지만 나는 특정입니다.)
나는 이이었던 일부 아웃 바운드 메시지를 받았고, 나에게 배달되기 며칠 전에 Cox 메일 스풀에 걸렸습니다.
도움이 되었기를 바랍니다.
아마도 http://spamhaus.org/ – MiseryIndex
입니다. 수정되었습니다. 감사. –
spamhaus.org (목록에 없음)에 나열되지 않았습니다. 보낸 사람 도메인이 서버에 속합니다. 나는 그것을받지 못하는 많은 이메일 계정으로 보내려고했다. (.Mac, gmail, yahoo) 로그 파일을 살펴 보겠습니다. 메일 로그가 어디에 있는지 알 수 있습니까? 감사합니다. –