2010-11-23 7 views
1

J'ai un problème ici, mes mails envoyés à partir de mon script PHP ne sont jamais envoyés dans ma boîte de réception, mais du spam. Toute aide sur la façon de l'obtenir dans la boîte de réception. Merci y'all Voici mon exemple de codeLes mails PHP finissent toujours dans le dossier spam

public function sendMail($name,$email,$message) 
{ 
    $this->validateInput($name,"Empty Name","Invalid Name"); 
    $this->validateEmail($email,"Empty Email","Invalid Email"); 
    $this->validateLargeData($message,"Invalid Message","Empty Message","Message Too Short"); 
    if (empty($this->errors)) 
    { 
     $fromName = $name; 
     $fromEmail = $email; 
     $from = "From: $fromName <$fromEmail>\r\n"; 
     $reply = "Reply-To: $fromEmail\r\n";  
     $mime = "MIME-Version: 1.0\r\n"; 
     $content = "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
     $headers = $from.$reply.$mime.$content; 
     if (mail("[email protected]","Contact",$message,$headers)) 
     { 
      echo "<div class='success1'>Thank you $name, we will get back you immediately.</div>"; 
     } 

    } 
    else 
    { 
     echo "<div class=''>"; 
     echo "</div>"; 
    } 
} 

modifier Pls Voici les informations d'en-tête j'utilise

$fromName = $name; 
$fromEmail = $email; 
$from = "From: $fromName <$fromEmail>\r\n"; 
$reply = "Reply-To: $fromEmail\r\n";  
$mime = "MIME-Version: 1.0\r\n"; 
$content = "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$mailer = "X-Mailer: PHP's mail() Function"; 
$headers = $from.$reply.$mime.$content.$mailer; 

@cyberomin

+0

@Pekka, fait dans le passé. Toute aide concernant la question? – Cyberomin

+1

@Cyberomin que voulez-vous dire par le passé? Je ne comprends pas –

+1

Ce que Pekka essaie de dire est: Pour augmenter les chances que les gens vous aident, il est conseillé d'accepter d'abord quelques réponses à vos questions précédentes. –

Répondre

2

Assurez-vous que vos en-têtes sont complètes:

$headers = "MIME-Version: 1.0\n"; 
$headers .= "Content-type: text/plain; charset=iso-8859-1\n"; 
$headers .= "From: aaa.bbb <[email protected]>\n"; 
$headers .= "X-Mailer: PHP's mail() Function\n"; 
mail("[email protected]", "subject","message",$headers); 

Et si vous êtes sur l'hébergement mutualisé, il pourrait être qu'il ya un spammeur sur votre liste noire IP.

La meilleure suggestion que je peux probablement faire est d'essayer une manière différente d'envoyer vos emails. Par exemple phpmailer ou Swift Mailer.

+1

+1 pour avoir mentionné l'hébergement partagé. –

+0

@Cyberonmin: Vous pourriez aussi vouloir jeter un coup d'oeil à http://stackoverflow.com/questions/250234/sending-mail-with-php-escaping-hotmails-junk-folder –

+0

@All utilisé mailer PHP et cela a fonctionné. – Cyberomin

0

Nous ne pouvons vous donner une exacte répondez si vous nous donnez les en-têtes du courrier dans votre dossier spam, mais je pense que c'est parce que vous envoyez à partir d'un ordinateur qui a une adresse IP dans une gamme IP qui contient des connexions Internet grand public ns. Le courrier électronique provenant des ordinateurs grand public est généralement un spam.

+0

Pls je ne vous comprends pas, les en-têtes sont inclus dans le code. – Cyberomin

+0

@Cyberomin thejh signifie les en-têtes qui sont inclus dans l'email que vous recevez. De nombreuses informations sont envoyées dans un en-tête d'e-mail, dont certaines ne peuvent pas être modifiées. Si vous pouvez mettre à jour votre question avec cette information, cela aidera les gens à donner une réponse plus complète. –