Comment puis-je empêcher les mails envoyés via PHP mail () d'Aller vers le spam?

J'utilise la fonction mail () de PHP pour envoyer des emails (le processus sendmail est en cours d'exécution). Mais tous les mails vont au spam (dans le cas de gmail). J'ai essayé beaucoup de trucs que j'ai trouvés sur le net, mais aucun ne fonctionne, Parlez-moi de tout truc sûr.

29
demandé sur alimack 2011-05-09 13:40:08

5 réponses

, Vous devez ajouter une aiguille en-têtes:

Exemple de code :

$headers = "From: myplace@example.com\r\n";
$headers .= "Reply-To: myplace2@example.com\r\n";
$headers .= "Return-Path: myplace@example.com\r\n";
$headers .= "CC: sombodyelse@example.com\r\n";
$headers .= "BCC: hidden@example.com\r\n";

if ( mail($to,$subject,$message,$headers) ) {
   echo "The email has been sent!";
   } else {
   echo "The email has failed!";
   }
?> 
32
répondu Cephalopod 2011-08-10 13:34:17

Il n'y a pas de coup sûr. Vous devez explorer les raisons pour lesquelles vos mails sont classés comme spam. SpamAssassin hase une page décrivant Quelques conseils pour les expéditeurs légitimes pour éviter les faux positifs . Voir aussi coding Horror: vous souhaitez donc envoyer un Email (via le Code)

17
répondu Oswald 2011-05-09 09:44:37

Essayez bibliothèque PHP Mailer .
Ou envoyer du courrier via SMTP filtrer avant de l'envoyer.
Essayez aussi de donner tous les détails comme FROM, return-path.

4
répondu Rikesh 2013-02-28 04:39:52
<?php

$subject = "this is a subject";
$message = "testing a message";




  $headers .= "Reply-To: The Sender <sender@domain.com>\r\n"; 
  $headers .= "Return-Path: The Sender <sender@domain.com>\r\n"; 
  $headers .= "From: The Sender <sender@domain.com>\r\n";  
  $headers .= "Organization: Sender Organization\r\n";
  $headers .= "MIME-Version: 1.0\r\n";
  $headers .= "Content-type: text/plain; charset=iso-8859-1\r\n";
  $headers .= "X-Priority: 3\r\n";
  $headers .= "X-Mailer: PHP". phpversion() ."\r\n" ;



mail("reciever@domain.com", $subject, $message, $headers); 


?> 
2
répondu Ahmed Medhat 2017-10-19 22:03:02
$fromMail = 'set your from mail';
$boundary = str_replace(" ", "", date('l jS \of F Y h i s A'));
$subjectMail = "New design submitted by " . $userDisplayName;


$contentHtml = '<div>Dear Admin<br /><br />The following design is submitted by '. $userName .'.<br /><br /><a href="'.$sdLink.'"><b>Click here</b></a> to check the design.</div>';
$contentHtml .= '<div><a href="'.$imageUrl.'"><img src="'.$imageUrl.'" width="250" height="95" border="0" alt="my picture"></a></div>';
$contentHtml .= '<div>Name : '.$name.'<br />Description : '. $description .'</div>';

$headersMail = '';
$headersMail .= 'From: ' . $fromMail . "\r\n" . 'Reply-To: ' . $fromMail . "\r\n";
$headersMail .= 'Return-Path: ' . $fromMail . "\r\n";
$headersMail .= 'MIME-Version: 1.0' . "\r\n";
$headersMail .= "Content-Type: multipart/alternative; boundary = \"" . $boundary . "\"\r\n\r\n";
$headersMail .= '--' . $boundary . "\r\n";
$headersMail .= 'Content-Type: text/html; charset=ISO-8859-1' . "\r\n";
$headersMail .= 'Content-Transfer-Encoding: base64' . "\r\n\r\n";
$headersMail .= rtrim(chunk_split(base64_encode($contentHtml)));

try {
    if (mail($toMail, $subjectMail, "", $headersMail)) {
        $status = 'success';
        $msg = 'Mail sent successfully.';
    } else {
        $status = 'failed';
        $msg = 'Unable to send mail.';
    }
} catch(Exception $e) {
    $msg = $e->getMessage();
}

Cela fonctionne bien pour me.It comprend le courrier avec une image et un lien et fonctionne pour toutes sortes d'identifiants de courrier. L'indice est d'utiliser tout l'en-tête parfaitement.

Si vous le testez à partir de localhost, définissez le ci-dessous avant de vérifier:

Comment définir l'envoi de courrier depuis localhost xampp:

  1. Commentez tout dans D:/xampp/sendmail/sendmail.ini et mentionnez ci-dessous

    [sendmail]

    Smtp_server=smtp.gmail.com smtp_port = 587 error_logfile = erreur.journal debug_logfile = déboguer.journal auth_username=yourmailid@domain.com auth_password=votre-mail-mot de passe force_sender=yourmailid@domain.com

  2. Dans D:/xampp/php/php.ini un. En vertu de

    [Fonction mail]

    SMTP = smtp.gmail.com smtp_port = 587

B. set sendmail_from = yourmailid@domain.com C. décommenter sendmail_path = "\ " D:\xamp\sendmail\sendmail.exe\ " - t" Par conséquent il devrait être ressembler à ci-dessous

sendmail_path = "\"D:\xamp\sendmail\sendmail.exe\" -t"

D. commentaire sendmail_path="D:\xamp\mailtodisk\mailtodisk.EXE" Par conséquent, il devrait ressembler à ci-dessous

;sendmail_path="D:\xamp\mailtodisk\mailtodisk.exe"

E. mail.add_x_header=Off

0
répondu Ipsita Rout 2017-03-28 10:36:21