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.
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!";
}
?>
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)
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
.
<?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);
?>
$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:
-
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
-
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