2014-09-08 4 views
-3

메일 기능을 사용하여 연락처 양식을 만들었습니다. 모든 것이 잘되었지만 야후에서 Gmail로 메일을 보내면 문제가 발생합니다! 이메일에 대한 이메일은 gmail에서 yahoo에 이르기까지 훌륭합니다. 그러나 이메일이 야후에서 Gmail로 전송되면 작동하지 않습니다. 이처럼PHP 메일이 야후에서 Gmail로 보내지 않습니다.

:

mail("[email protected]",$subject,$message,"From :[email protected]"); 

이 용량이 작동하지! 이 문제를 해결하는 방법은 무엇입니까?

전체 코드 :

<?php 
    $headers = "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
    $headers .= "From: ".$email; 
    $subject=$form_name." - ".$subject; 
    $message=nl2br($message); 
    $message=$message."<br /><br /><br />".$name."<br />".$phone."<br />".$web; 
    $message = wordwrap($message, 70, "\r\n"); 
    if(mail($send_to,$subject,$message,$headers)){ 
     echo "<p class='success'><span></span> ".$success."</p>"; 
    } 
    else{ 
     echo "<p class='error'><span></span> there was a problem, please try again</p>"; 
    }; 
    ?> 
+0

는 확실하지 난 내가 설정 한 경우 문제 : – MrD

+0

무엇인지 이해 [email protected] 및 전송-에 = 일부 @ Gmail은. com, 그것은 작동하지 않습니다! – the110boy

+0

작동 할 때 작성한 예제를 추가 할 수 있습니까? – pstenstrm

답변

2

대부분의 경우이 보안 검사로 인해 실패 - 서버가 Yahoo.com에 연결되지 않은, 따라서 전자 메일의 원본 IP 주소가 확인됩니다 때 도메인의 보낸 사람 전자 메일 주소가 있으면 실패하고 전자 메일이 차단됩니다. 일부 전자 메일 공급자 만이 수준의 검사를 수행합니다.

야후의 전자 메일 주소가 회신 주소로 표시되도록하려면 from: 헤더 대신 reply-to: 헤더를 사용하여 설정하십시오. 자세한 내용은 PHP mail() 문서를 참조하십시오. 도메인 또는 서버의 적절한 또는 기본 출발지 주소를 사용하십시오. 이렇게하면 전자 메일이 실제로 배달되는지 확인할 때까지 최상의 결과를 얻을 수 있습니다.

+0

문제는 이것입니다. mail ("[email protected]", $ subject, $ message, "FROM : [email protected]"); 문제는 내가 Gmail로 보내려고 할 때, 야후, 야후, Gmail, Gmail, Gmail에 야후를 보낼 수 있습니다 ...하지만 Gmail에 야후를 보낼 수 없습니다 !! – the110boy

+0

예, 대답에 명시된 바와 같이 일부 ISP 만 전자 메일이 FROM : 주소의 도메인에 등록 된 IP 주소를 가진 서버에서 발신 된 것인지 확인합니다. Gmail, Comcast, AOL (많은 중소기업을 포함)이 내가 알고있는 유일한 회사입니다. – Wige

+0

음, 그게 보통인가요?나는 프로그래머로서 어떤 것을해야합니까? – the110boy

0

메일 서버가 전자 메일을 보낼 때 DNS SPF 레코드가 검사되어 서버에서 주소가 yahoo.com 또는 gmail.com으로 설정된 전자 메일을 보낼 수 있는지 확인합니다. 서버가 yahoo.com 도메인의 전자 메일을 보낼 수 있다는 것을 나타내는 SPF 레코드가 없으면 서버가 스팸을 보내는 것일 수 있습니다. 이렇게하면 일부 메일 서버가 서버에서 수신 한 전자 메일을 거부 할 수 있습니다.

0

"보낸 사람"전자 메일 주소를 "보낸 사람"헤더에서 "회신"헤더로 이동하여 동일한 문제를 방금 해결했습니다. 보낸 사람의 이메일 주소로 "[email protected]"

설정 회신에 같은 (코드에서 줄을 추가)로부터

설정합니다.

Gmail은 더 이상 메일을 필터링하지 않습니다. 이는 투명한 행동이며 스팸 시도가 아니기 때문입니다. 문제는 야후/Gmail을 발생하지만

...

관련 문제