2012-08-30 40 views
5

Tôi biết vấn đề này đã được giải quyết một vài lần ở đây. Tôi đã thử làm theo các hướng dẫn để thiết lập tiêu đề phù hợp, tôi vẫn gặp sự cố với các email của tôi đi vào bộ lọc spam trong Gmail.Mẫu thư PHP() gửi tới thư rác GMAIL

Nếu có ai vui lòng xem qua những gì tôi đã thử, tôi thực sự đánh giá cao điều đó. Mã bên dưới không có tiêu đề được thêm như được giải thích tại đây: http://www.velvetblues.com/web-development-blog/avoid-spam-filters-with-php-mail-emails/

Xin cảm ơn trước.

define("WEBMASTER_EMAIL", '[email protected]'); 
if($post) 
{ 
    $name = stripslashes($_POST['name']); 
    $email = trim($_POST['email']); 
    $subject = trim($_POST['subject']); 
    $message = stripslashes($_POST['message']); 

    $error = ''; 

    // Check name 
    if(!$name) 
     $error .= 'Name required! '; 

    // Check email 
    if(!$email) 
     $error .= 'E-mail required! '; 

    if($email && !ValidateEmail($email)) 
     $error .= 'E-mail address is not valid! '; 

    // Check message 
    if(!$message) 
     $error .= "Please enter your message!"; 

    if(!$error) 
    { 

     $mail = mail(WEBMASTER_EMAIL, $subject, $message, 
      "From: ".$name." <".$email.">\r\n" 
      ."Reply-To: ".$email."\r\n" 
      ."X-Mailer: PHP/" . phpversion()); 

     if($mail) 
      echo 'OK'; 
    } 
    else 
     echo '<div class="errormsg">'.$error.'</div>'; 
} 
+0

Tôi không biết câu trả lời 'tại sao' điều đó xảy ra nhưng tôi có ý tưởng. Gửi cho mình một email theo cách thông thường, kiểm tra nội dung thô của nó, và sau đó kiểm tra nội dung của email bạn gửi bằng cách sử dụng php của bạn. SOmething có thể bị thiếu. – Grzegorz

+1

nó có thể chỉ là bản chất của thông điệp của bạn. không có tiêu đề ma thuật nào khiến email không bao giờ bị đánh dấu là spam. –

+3

Tiêu đề không chính đáng không phải là lý do duy nhất mà thư được gửi là spam. Các vấn đề khác như nội dung, tra cứu DNS ngược được thực hiện trên máy chủ gửi và tất cả những thứ khác đều đóng góp. –

Trả lời

9

Sử dụng mã này:

$to = Email; 
$subject = subject ; 
$body = "<div> hi hi .. </div>"; 

    $headers = 'From: YourLogoName [email protected]' . "\r\n" ; 
    $headers .='Reply-To: '. $to . "\r\n" ; 
    $headers .='X-Mailer: PHP/' . phpversion(); 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
if(mail($to, $subject, $body,$headers)) { 
    echo('<br>'."Email Sent ;D ".'</br>'); 
    } 
    else 
    { 
    echo("<p>Email Message delivery failed...</p>"); 
    } 
+4

Có thể đã trở lại tốt khi được đăng. Thật không may ngày hôm nay, điều này là bị bắt như thư rác Gmail. – Sparky

+2

đi thẳng vào hộp thư rác – TomSawyer

+0

phá vỡ quá nhiều quy tắc không phải là buồn cười. – Jasen

4

Tôi nghĩ rằng đây là vấn đề của bạn:

"From: ".$name." <".$email.">\r\n" 

vì bạn không gmail, hotmail hoặc nhà cung cấp người dùng email của bạn, bạn có thể không có "Từ: otherdomain.com" và sau đó cung cấp qua đường bưu điện qua "mail.yourdomain.com" - điều này rất có thể sẽ chuyển thư của bạn vào thư mục spam.

Hãy thử

"From: YourWebsiteName <[email protected]>\r\n" 
."Reply-To: ".$name." <".$email.">\r\n" 

để thay thế.

Đồng thời: mã của bạn rất không được lưu và mục tiêu spam chính - google "email header injection php"!

0

Google có xu hướng kỷ luật không chỉ là trang web mà còn cung cấp dịch vụ người sử dụng để có nhiều người sử dụng gửi thư rác trên mạng. Nếu bạn được đăng ký một trong những nhà cung cấp dịch vụ này mà google biết là kẻ gửi thư rác, đây có thể là lý do tại sao thư php() của bạn rơi vào hộp thư rác trong gmail. Cố gắng trò chuyện về vấn đề này với nhà cung cấp máy chủ của bạn.

Trong trường hợp đó bạn sẽ nhận được một cảnh báo từ google trong "spam" tin nhắn của bạn:

"Tại sao thư này nằm trong Spam Chúng tôi thấy rằng nhiều thư từ home.pl là thư rác Tìm hiểu thêm "

Các vấn đề liên quan