<span><span><span class="hljs-meta"><?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">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?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'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.
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'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'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é.
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'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'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é.
Assurez-vous que le serveur a une extension MBSTring installée et activée.
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'essai"</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>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.
?>
<span></span>