Position actuelle: Accueil> Derniers articles> Comment configurer le codage du courrier global de manière unifiée avec MB_SEND_MAIL et MB_INTERNAL_ENCODING?

Comment configurer le codage du courrier global de manière unifiée avec MB_SEND_MAIL et MB_INTERNAL_ENCODING?

gitbox 2025-09-12
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Exemple de code pré-indépendant</span></span><span>
</span><span><span class="hljs-variable">$version</span></span><span> = </span><span><span class="hljs-title function_ invoke__">phpversion</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"actuel PHP Version:<span class="hljs-subst">$version</span></span></span><span>";
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
titre: Comment combiner mb_send_mail et mb_internal_encoding Définir le codage des e-mails uniformément?

exister PHP Lors de l&#39;envoi de courriels,Le traitement du codage des caractères est un problème très important,尤其是exister涉及多语言内容时。PHP Intégré `mail()` Les fonctions peuvent envoyer des e-mails,Mais si utilisé directement,Il est très susceptible de rencontrer chinois ou autre non ASCII Le problème des personnages brouillés。Pour résoudre ce problème,PHP Fourni `mb_send_mail` et `mb_internal_encoding` Deux fonctions de chaîne multilingue,Peut unifier efficacement le codage e-mail。

un、mb_internal_encoding Le rôle de
-----------------------------------
`mb_internal_encoding` Pour la configuration PHP Encodage par défaut des chaînes de multicette internes。通过统un内部编码,可以确保字符串exister处理过程中不会出现乱码。Par exemple:

```php
mb_internal_encoding("UTF-8");
</span></span></span>

Cette ligne de codes définit le codage interne de PHP à UTF-8, et toutes les chaînes suivantes traitées à l'aide de la fonction MBSTring seront codées dans UTF-8.

2. Le rôle de MB_SEND_MAIL

MB_SEND_MAIL est une fonction d'envoi de messagerie sécurisée multi-octet fournie par PHP. Il peut gérer des caractères multi-octets dans le sujet et le contenu du courrier, garantissant que le courrier s'affiche normalement dans différents clients de messagerie. Exemple d'utilisation:

 <span><span><span class="hljs-variable">$to</span></span><span> = </span><span><span class="hljs-string">"[email protected]"</span></span><span>;
</span><span><span class="hljs-variable">$subject</span></span><span> = </span><span><span class="hljs-string">"Courrier d&#39;essai"</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"这是un封utiliser UTF-8 编码发送的Courrier d&#39;essai。"</span></span><span>;
</span><span><span class="hljs-variable">$headers</span></span><span> = </span><span><span class="hljs-string">"From: [email protected]"</span></span><span>;

</span><span><span class="hljs-title function_ invoke__">mb_send_mail</span></span><span>(</span><span><span class="hljs-variable">$to</span></span><span>, </span><span><span class="hljs-variable">$subject</span></span><span>, </span><span><span class="hljs-variable">$message</span></span><span>, </span><span><span class="hljs-variable">$headers</span></span><span>);
</span></span>

Par défaut, MB_SEND_MAIL utilisera le codage interne comme codage par e-mail, donc tant que le codage interne est défini correctement, le contenu de messagerie envoyé n'apparaîtra pas brouillé.

3. Configurez l'e-mail global encodant uniformément

Afin d'éviter de définir manuellement l'encodage chaque fois que vous envoyez un e-mail, il est recommandé de le définir uniformément lorsque le projet est initialisé:

 <span><span><span class="hljs-comment">// installation PHP Code interne comme UTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);

</span><span><span class="hljs-comment">// Exemple d&#39;envoi par e-mail</span></span><span>
</span><span><span class="hljs-variable">$to</span></span><span> = </span><span><span class="hljs-string">"[email protected]"</span></span><span>;
</span><span><span class="hljs-variable">$subject</span></span><span> = </span><span><span class="hljs-string">"Test de codage global"</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"Contenu par e-mail,支持中文et其他多字节字符"</span></span><span>;
</span><span><span class="hljs-variable">$headers</span></span><span> = </span><span><span class="hljs-string">"From: [email protected]"</span></span><span>;

</span><span><span class="hljs-comment">// utiliser mb_send_mail Envoyer un e-mail</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span>(</span><span><span class="hljs-title function_ invoke__">mb_send_mail</span></span><span>(</span><span><span class="hljs-variable">$to</span></span><span>, </span><span><span class="hljs-variable">$subject</span></span><span>, </span><span><span class="hljs-variable">$message</span></span><span>, </span><span><span class="hljs-variable">$headers</span></span><span>)){
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"L&#39;e-mail a été envoyé avec succès!"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Envoi par e-mail a échoué!"</span></span><span>;
}
</span></span>

Grâce à la méthode ci-dessus, tant que vous appelez MB_SEND_MAIL dans le projet pour envoyer des e-mails, l'encodage UTF-8 sera automatiquement utilisé, unifiant ainsi le style d'encodage des e-mails de l'ensemble de l'application et évitant les problèmes de code brouillé.

4. Choses à noter

  1. Assurez-vous que le serveur a une extension MBSTring installée et activée.

  2. Si le sujet de messagerie contient chinois, il est recommandé d'utiliser MB_ENCODE_MIMEHEADER pour coder le sujet:

 <span><span><span class="hljs-variable">$subject</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_encode_mimeheader</span></span><span>(</span><span><span class="hljs-string">"Courrier d&#39;essai"</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>
  1. Il est préférable de spécifier les informations d'en-tête de type contenu pour le corps de messagerie pour s'assurer que le client de messagerie s'affiche correctement:

 <span><span><span class="hljs-variable">$headers</span></span><span> .= </span><span><span class="hljs-string">"\r\nContent-Type: text/plain; charset=UTF-8"</span></span><span>;
</span></span>

Résumer:
En définissant MB_internal_encoding ("UTF-8") pendant la phase d'initialisation du projet et l'envoi de courriels en combinaison avec MB_SEND_MAIL , le codage global unifié de l'e-mail peut être réalisé pour s'assurer que les caractères chinois ou autres multi-octets sont affichés correctement sur divers clients.
Il s'agit d'une méthode sûre et fiable d'envoi d'e-mails, en particulier adapté aux systèmes multilingues et aux applications d'entreprise.
?>

<hr> <? PHP // Exemple de code indépendant de la Tail Echo "L'exécution du script est terminée"; ?>
 <span></span>