Je rencontre des difficultés pour envoyer des messages dans ma boîte de réception (compte gmail), mais chaque fois que le message est envoyé dans un dossier de courrier indésirable ... Voici l'extrait de code
//$ticketDetail is array which contain required information to send.
sendOwnershipEmail('[email protected]', $ticketDetail);
function sendOwnershipEmail($email, $ticketDetail) {
$param = new stdClass();
$param->content = "<div>
<div><b>".$ticketDetail[0]['ticket_number']."</b></div><br/>
<div><img src='".$ticketDetail[0]['image_path']."'/></div><br/>
<div>Ticket with ticket number ".$ticketDetail[0]['ticket_number']." has been requested for tranfer from <div/>
<div>".$ticketDetail[0]['oldDepartment']." to ".$ticketDetail[0]['newDepartment']." Department <div/>
</div>";
$param->sendTo = $email;
$param->subject = "Request for Department transfer";
sendMailFunction($param);
}
function sendMailFunction($param) {
$to = $param->sendTo;
$subject = $param->subject;
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: [email protected]' . "\r\n";
$message = "<html><head>" .
"<meta http-equiv='Content-Language' content='en-us'>" .
"<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>" .
"</head><body>" .$param->content.
"<br><br></body></html>";
mail($to, $subject, $message, $headers);
}
Et j'ai essayé beaucoup de choses comme définir les en-têtes comme Reply-To, Return-Path, etc.
Le problème est simple: la fonction PHP-Mail n’utilise pas un serveur SMTP bien configuré.
De nos jours, les clients de messagerie et les serveurs effectuent des vérifications massives sur le serveur d'envoi de courriels, comme les recherches inversées-DNS, les listes grises et les noms de cas. Tous ces tests échoueront avec la fonction php mail (). Si vous utilisez une adresse IP dynamique, c'est encore pire.
Utilisez la classe PHPMailer et configurez-la pour utiliser smtp-auth avec un serveur SMTP dédié et bien configuré (soit un serveur local, soit un serveur distant) et vos problèmes disparaîtront.
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
$headers .= "From: [email protected]" . "\r\n" .
"Reply-To: [email protected]" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
Pour quelques raisons.
L’un d’eux est le besoin d’un Reply-To
et,
L'utilisation d'apostrophes au lieu de guillemets doubles. Ce sont ces deux choses, selon mon expérience avec les formulaires, qui déclenchent généralement la fin du message dans la boîte Spam.
Vous pouvez également essayer de changer le $from
en:
$from = "[email protected]";
Voir ces liens que j'ai trouvés sur le sujet https://stackoverflow.com/a/9988544/1415724 et https://stackoverflow.com/a/16717647/1415724 et https: // stackoverflow.com/a/9899837/1415724
https://stackoverflow.com/a/5944155/1415724 et https://stackoverflow.com/a/6532320/1415724
Essayez d’utiliser le serveur SMTP de votre fournisseur de services Internet.
Utiliser ceci a apparemment fonctionné pour beaucoup: X-MSMail-Priority: High
http://www.webhostingtalk.com/showthread.php?t=931932
"Mon hôte m'a aidé à activer DomainKeys et les enregistrements SPF sur mon domaine. Désormais, lorsque j'envoie un message de test à mon adresse Hotmail, il ne se termine pas en courrier indésirable . C'était vraiment très facile d'activer ces paramètres Dans cPanel sous Authentification Email, je ne peux pas croire que je n'avais jamais vu ça auparavant . Cela fonctionne uniquement avec l'envoi via SMTP via phpmailer. De toute autre manière, il est toujours marqué comme spam. "
PHPmailer envoie des mails au spam dans Hotmail. comment y remédier http://Pastebin.com/QdQUrfax
Si vous envoyez ceci via votre propre serveur de messagerie, vous devrez peut-être ajouter un en-tête "Sender" qui contiendra une adresse email de votre propre domaine. Gmail va probablement spammer l'e-mail car l'adresse FROM est une adresse Gmail mais n'a pas été envoyée à partir de son propre serveur.
Ce que nous faisons habituellement avec le courrier électronique, en empêchant les dossiers de courrier indésirable comme destination finale, est d'utiliser Gmail comme serveur smtp ou Mandrill comme serveur smtp.
Une des choses que j'ai observées est probablement que l'adresse e-mail que vous fournissez n'est pas une adresse e-mail valide sur le domaine. comme [email protected]. L'e-mail doit exister sur Google Domain. J'ai eu beaucoup de problèmes avant de comprendre cela moi-même ... J'espère que cela aide.