2012-08-30 11 views
5

So che questo problema è stato risolto alcune volte qui. Ho provato a seguire le istruzioni per l'impostazione di intestazioni corrette, ma continuo a riscontrare problemi con le mie e-mail che entrano nel filtro spam in Gmail.Posta PHP() invia a GMAIL spam

Se qualcuno può dare un'occhiata a quello che ho provato, lo apprezzerei molto. Il codice sotto è senza le intestazioni aggiunte come spiegato qui: http://www.velvetblues.com/web-development-blog/avoid-spam-filters-with-php-mail-emails/

Grazie in anticipo.

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

Non conosco la risposta" perché "succede ma ho un'idea. Inviati una email in modo normale, controlla i suoi contenuti non elaborati e poi controlla il contenuto dell'e-mail che hai inviato usando il tuo php. Probabilmente manca qualcosa. – Grzegorz

+1

potrebbe benissimo essere la natura del tuo messaggio. non c'è un'intestazione magica che faccia sì che una e-mail non venga mai contrassegnata come spam. –

+3

Le intestazioni errate non sono l'unica ragione per cui i messaggi vengono archiviati come spam. Altri problemi come il contenuto, le ricerche DNS inverse eseguite sull'host di invio e altri contribuiscono. –

risposta

9

Usa questo codice:

$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

Potrebbe essere tornato utile quando inviato. Sfortunatamente oggi, questo viene preso come spam Gmail. – Sparky

+2

vai direttamente alla casella spam – TomSawyer

+0

che rompe così tante regole che non è divertente. – Jasen

4

Penso che questo sia il problema:

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

dal momento che non sono Gmail, Hotmail o il vostro fornitore di utenti di posta elettronica, non si può avere "Da: otherdomain.com" e poi consegnare la posta via "mail.tuodominio.com" - molto probabilmente trasferirà la tua posta nella cartella spam.

Prova

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

invece.

ANCHE: il tuo codice è molto unsave e un target di spam primario - google "email header php injection"!

0

Google tende a disciplinare non solo il sito web, ma anche i fornitori di servizi che utilizzano di avere molti utenti spamming attraverso la rete. Se sei inserito in uno di questi fornitori di servizi che google conosce come spammer, questo potrebbe essere il motivo per cui i tuoi messaggi php mail() arrivano nella casella spam di gmail. Prova a chattare su questo problema con il tuo server provider.

In questo caso si ottiene un avvertimento da parte di Google nel messaggio "spam":?

"Perché questo messaggio è classificato come spam Abbiamo scoperto che molti messaggi provenienti da home.pl sono lo spam Ulteriori informazioni "