2012-07-05 7 views
3

이메일을 보내기 위해 내 사이트의 연락처 양식에 PHP 메일 기능을 사용했습니다. 최근에, 나는 그것이 작동을 멈춘다는 것을 알아 냈다. 연락 양식에 질문을 보내면 성공적으로 보낸 것으로 나타 났지만받은 편지함에는 아무 것도 들어오지 않았습니다.PHP 메일이 갑작스럽게 작동을 멈 춥니 다.

여기에 같은 문제가있는 사람이 있습니까? 어떻게하면이 문제를 해결할 수 있을까요?

cPanel에서 MX 항목을 확인했는데 데이터가 정확한 것입니다. 나는 SMTP를 시도하고 싶다 그러나 나는 정보에 접근하지 않는다.

이 문제에 도움이 되셨습니까?

추가 정보 발견 된 사항 : 웹 서버는 호스팅 회사 중 하나에서 호스팅됩니다. 메일 서버가 Google에서 호스팅됩니다.

아마 여기에 문제가 있습니까?

+0

다른 주소 (Gmail/Yahoo/etc)로 보내 봤습니까? 연결하려고 할 때 문제가 있는지 텔넷을 사용하여 SMTP에 직접 연결을 시도 했습니까? – andrewsi

+0

http://postmarkapp.com/은 스크립트로 메일을 보내는 훌륭한 솔루션입니다. 그들에게는 사용하기 쉬운 멋진 PHP 래퍼가 있습니다. – honyovk

+0

andrewsi가 제안한 것을 수행하고 WHM 인터페이스에 로그인하여 메일 큐를 확인하십시오. –

답변

0

좋아, 여기에 문제가 파손 된 호스팅 서버의 메일 EXIM이다. 따라서 호스팅 지원을 업데이트해야 문제가 해결됩니다.

2

아마 문제는 귀하의 양식이 많은 트래픽을 발생시키고 차단되었다는 것을 "알아 낸"호스팅 제공 업체에 있습니다.

+0

나는 우리의 호스팅 제공 업체에 연락했으며 우리에게 전혀 도움이되지 않습니다. 그들은 단지 우리에게 메일 설정과 PHP 메일 기능을 확인해달라고 말했지만 메일에서 오류 메시지를 전혀받지 못했습니다. – user1149244

+1

지금까지 작동했고 갑자기 중단 된 경우 문제는 양식을 호스팅하는 서버 여야합니다. 다른 호스트에서 테스트 해 보았습니까? 얼마나 자주 그 양식을 사용 했습니까? – silentw

+0

문의 양식은 3 년 동안 일하고있었습니다. – user1149244

1

또는 뭔가 잘못되었습니다. 문제가 있으시면 /var/log/mail.*을보십시오.

+0

명령을 실행했지만 성공하지 못했습니다. root/mydomain [~] # cd /var/log/mail.* -bash : cd : /var/log/mail.* : 그런 파일이나 디렉토리가 없습니다. – user1149244

+0

'ls/var/log/메일. *'을 선택하면 로그 파일이 표시됩니다. – pamil

+0

해당 명령을 수행 할 때 다음 오류가 발생했습니다. ls /var/log/mail.* /bin/ls : /var/log/mail.* : 해당 파일이나 디렉토리가 없습니다. – user1149244

1

mail() 함수가 반환하는 내용을 올바르게 검증 했습니까?

PHP에서 오류 로그를 확인하기 위해 error_log를 확인하는 것이 좋습니다. 메일이 전송되는지 확인하려면 코드를 다른 서버에 배치하십시오 (메일 기능이있는 작은 프로그램 만들기). 그렇다면 가장 가능성이 높은 ISP입니다. 여기

+0

다른 서버로 테스트 한 결과 성공했습니다. – user1149244

+0

그러면 서버가 확실합니다. 관리자와 확인하거나/var/log/mail을 확인하십시오 – Dynelight

1

는 SMTP에 직접 연결하는 방법입니다 :

$smtp = fsockopen("localhost", 25, $errno, $errstr, 15); 
if(!$smtp) { 
    echo "failed"; 
} 
else { 
    stream_set_timeout($smtp, 0, 80000); 
    fwrite($smtp, "HELO domainname.com\r\n"); 
    stream_set_blocking($smtp, 0); 
    fwrite($smtp, "MAIL FROM:<".$from.">\r\n"); 
    fwrite($smtp, "RCPT TO:<$to>\r\n"); 
    fwrite($smtp, "DATA\r\n"); 
    fwrite($smtp, "Date: ".date("r")."\r\n"); 
    fwrite($smtp, "From: <".$from_address.">\r\n"); 
    fwrite($smtp, "Reply-to: $replyto\r\n"); 
    fwrite($smtp, "Subject: Test\r\n"); 
    fwrite($smtp, "To: $to\r\n"); 
    $outMsg .= "Whatever your email body is, then end it with a period on a new line\r\n.\r\n"; 
    $bitesWritten = fwrite($smtp, $outMsg); 
    echo "Wrote $bitesWritten of " strlen($outMsg); 
} 
+0

안녕 카일, 머리를 주셔서 감사합니다. 귀하의 코드를 시도했지만 연결이 오류가있어. 어쩌면 웹 서버에 뭔가 잘못 될 수 있습니다. – user1149244

+0

셸 액세스 권한이 있습니까? –

+0

네, 텔넷을 시도하고 동일한 오류가 발생했습니다. http://pastebin.com/QTqbDPzN – user1149244

관련 문제