Maison >développement back-end >tutoriel php >Pourquoi mes e-mails de la fonction PHP `mail()` se retrouvent-ils dans le dossier spam ?

Pourquoi mes e-mails de la fonction PHP `mail()` se retrouvent-ils dans le dossier spam ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-06 10:04:12416parcourir

Why are my PHP `mail()` function emails ending up in the spam folder?

Dépannage de la fonction de messagerie lors de l'envoi d'e-mails vers du spam sur PHP

Lors de l'envoi d'e-mails via la fonction mail() de PHP, ils se retrouvent fréquemment dans le spam dossier. Pour résoudre ce problème, nous devons comprendre le problème sous-jacent.

La clé pour résoudre ce problème réside dans le fait que la fonction mail() n'utilise pas de serveur SMTP bien configuré. Par exemple :

$ticketDetail is an array containing pertinent information for transmission.
sendOwnershipEmail('[email protected]', $ticketDetail);

function sendOwnershipEmail($email, $ticketDetail) {
    $param = new stdClass();
    
    $param->content = &quot;<div>
        <div><b>&quot;.$ticketDetail[0]['ticket_number'].&quot;</b></div><br/>
        <div><img src='&quot;.$ticketDetail[0]['image_path'].&quot;'/></div><br/>
        <div>Ticket with ticket number &quot;.$ticketDetail[0]['ticket_number'].&quot; has been requested for tranfer from <div/>
        <div>&quot;.$ticketDetail[0]['oldDepartment'].&quot; to &quot;.$ticketDetail[0]['newDepartment'].&quot; Department <div/>
      </div>&quot;;
    
    $param->sendTo = $email;
    $param->subject = &quot;Request for Department transfer&quot;;
    
    sendMailFunction($param);
}

function sendMailFunction($param) {
        $to = $param->sendTo;
        $subject = $param->subject;
        $headers = 'MIME-Version: 1.0' . &quot;\r\n&quot;;
        $headers .= 'Content-type: text/html; charset=iso-8859-1' . &quot;\r\n&quot;;
        $headers .= 'From: [email&#160;protected]' . &quot;\r\n&quot;;
        $message = &quot;<html><head>&quot; .
               &quot;<meta http-equiv='Content-Language' content='en-us'>&quot; .
               &quot;<meta http-equiv='Content-Type' content='text/html; charset=windows-1252'>&quot; .
               &quot;</head><body>&quot; .$param->content.       
               &quot;<br><br></body></html>&quot;;
    mail($to, $subject, $message, $headers);
}

Solution

Serveur SMTP : la fonction mail() de PHP s'appuie sur un serveur pour envoyer des e-mails, qui peut ne pas être configuré correctement. L'utilisation de PHPMailer et sa configuration pour utiliser l'authentification SMTP en conjonction avec un serveur SMTP dédié réduiront ce problème.

Bibliothèque PHPMailer : La bibliothèque PHPMailer est une bibliothèque PHP open source spécialement conçue pour l'envoi d'e-mails. Il fournit diverses fonctionnalités, notamment la gestion de l'authentification SMTP. L'intégration de PHPMailer à votre code vous permettra de configurer un serveur SMTP dédié, ce qui résoudra le problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn