2013-04-16 2 views
0

나는 지금 당분간 검색을 해왔고 내 문제에 대한 답을 찾지 못하는 것 같습니다. 나는 문제가없는 올바른 메일 주소로 이메일을 보내는 PHP 메일 스크립트를 가지고있다. Gmail을 내 메일 클라이언트로 사용하고 있지만 정상적으로 작동하지만 내 호스트 사이트 (active24의 Mamutmail)에서 웹 메일을 확인할 때 많은 이메일이 Gmail로 리디렉션되지 않습니다.빈 양식을 보내는 PHP 양식

1 년 전 메일 스크립트를 사용하기 시작했을 때 양식에 대한 유효성 검사를 받았지만 많은 빈 메일도 수신했습니다. 나는 하루에 5-8 개의 빈 메일을 얻지 만, 인터넷 검색을 많이하고 Gmail을 "임의의 호스트 문제"로 간주 한 후에 Gmail에서 필터링하도록 결정했습니다 (나는 바보입니다). > 나는 빈 많은 수 -

이 호스트 웹 메일로 전송되는 웹 사이트의 양식에서 전송> 메일 있지만, 일부는 내 Gmail로 가져올 수 없습니다 -

을 :

그래서, 요약하기

<form id="mailForm" method="post" action="sendMailPre.php"> 
      Ditt namn <span style="color: red;">*</span><br/> 
      <input type="text" name="name" class="required" /><br/><br/> 

      Din mailadress <span style="color: red;">*</span><br/> 
      <input type="text" name="mail" class="required email" /><br/><br/> 

      Ditt telefonnummer<br/> 
      <input type="text" name="tele" /><br/><br/> 

      Din stad<br/> 
      <input type="text" name="city" /><br/><br/> 

      Ditt meddelande <span style="color: red;">*</span><br/> 
      <textarea type="text" name="message" rows="8" class="required"></textarea><br/><br/> 

      <input type="submit" class="submit" value="Skicka meddelande" /><br/><br/> 
      </form> 

그리고 이것은 PHP의 메일 스크립트입니다 :

을 메일은 매일 심지어 내가이 내 양식 코드

검증이 생각

$ToEmail = '[email protected]'; 
$EmailSubject = $_POST["name"] . ' - Mail från hemsidan'; 
$mailheader = 'From: ' . $_POST["name"] . '' . "\n" . 
'Reply-To: ' . $_POST["mail"] . '' . "\n" . 
"X-Mailer: PHP/" . phpversion()."\n"; 


$mailheader .= "MIME-Version: 1.0\n"; 
$mailheader .= "Content-Type: text/html; UTF-8\n"; 

$message = '<html><head>'; 
$message .= '<style>'; 
$message .= 'body{line-height: 60%; padding: 35px; margin: 0;}'; 
$message .= '</style></head>'; 
$message .= '<body>'; 
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">NAMN</span><br/>'; 
$message .= str_replace("\n", "<br />", ($_POST["name"])); 
$message .= '<br/><br/>'; 
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">MAIL</span><br/>'; 
$message .= str_replace("\n", "<br />", ($_POST["mail"])); 
$message .= '<br/><br/>'; 
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">TELEFONNUMMER</span><br/>'; 
$message .= str_replace("\n", "<br />", ($_POST["tele"])); 
$message .= '<br/><br/>';  $message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">STAD</span><br/>'; $message .= str_replace("\n", "<br />", ($_POST["city"])); $message .= '<br/><br/>'; 
$message .= '<span style="font-family: Trebuchet MS; font-size: 16px; font-weight: bold; color: #4c7eb0; font-weight: normal;">MEDDELANDE</span><br/>'; 
$message .= str_replace("\n", "<br />", ($_POST["message"])); 
$message .= '</span>'; 
$message .= '</body></html>'; 
mail($ToEmail, $EmailSubject, $message, $mailheader) or die ("Meddelandet kunde inte skickas."); 

정말 도움이 되겠습니까? 미리 감사드립니다.

+0

작동 유효성 검사 "where"? 자바 스크립트? PHP로? 자바 스크립트라면 무시할 수 있습니다. –

+0

@MarcB 자바 스크립트입니다. 우회하기 쉬운가? 좋은 검증을 권할 수 있습니까? – Cheezen

답변

2

나는 누군가가 그 페이지를로드 할 때마다 이메일을 발사 할 때마다 스크립트가 설정 될 것이라고 기꺼이 생각합니다.

<input type="hidden" name="formEmail" value="1"/> 

는 그 다음 sendMailPre.php 페이지에 $ _POST [ "formEmail"]에서 확인하고, 그 변수가있는 경우에만 이메일을 보내 : 나는 숨겨진 변수를 포함 할 것이다.

아마도 가장 좋은 추측은 아마 검색 엔진 로봇이 페이지를 친다는 것입니다.

+1

또는 if ($ _ SERVER [ 'REQUEST_METHOD'] == 'POST') {...}'에 전체 generate/send 논리를 래핑하십시오. 특정 양식 필드를 확인하는 것이 신뢰할 수 없습니다. –

+0

@MarcB 지금까지 해결책이 너무 좋았으므로, 진정으로 효과적인지 아닌지를 알기까지 한두 시간 정도 기다려야 할 것입니다. 그러나 빠른 응답을 위해 두 분 모두에게 감사드립니다! – Cheezen

관련 문제