Aktueller Standort: Startseite> Neueste Artikel> Wie richte ich mit MB_SEND_MAIL und MB_INTERAL_ENCODING eine einheitliche Weise ein, ein einheitliches E -Mail -Codieren?

Wie richte ich mit MB_SEND_MAIL und MB_INTERAL_ENCODING eine einheitliche Weise ein, ein einheitliches E -Mail -Codieren?

gitbox 2025-09-12
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// Vorunabhängiger Codebeispiel</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">"aktuell 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">/*
Titel: Wie man kombiniert mb_send_mail Und mb_internal_encoding Stellen Sie die globale E -Mail -Codierung einheitlich fest?

existieren PHP Beim Senden von E -Mails,Die Verarbeitung von Charaktercodierungsverarbeitung ist ein sehr wichtiges Thema,尤其是existieren涉及多语言内容时。PHP Eingebaut `mail()` Funktionen können E -Mails senden,Aber wenn es direkt verwendet wird,Es ist sehr wahrscheinlich, dass es auf chinesische oder andere Nicht-Nicht-Begegnung tritt ASCII Das Problem der verstümmelten Charaktere。Dieses Problem zu lösen,PHP Bereitgestellt `mb_send_mail` Und `mb_internal_encoding` Zwei Multibyte -String -Funktionen,Kann die E -Mail -Codierung effektiv vereinen。

eins、mb_internal_encoding Die Rolle von
-----------------------------------
`mb_internal_encoding` Zum Einrichten PHP Standardkodierung interner Multibyte -Saiten。通过统eins内部编码,可以确保字符串existieren处理过程中不会出现乱码。Zum Beispiel:

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

Diese Codezeile legt die interne Codierung von PHP auf UTF-8 fest, und alle nachfolgenden Zeichenfolgen, die mit der Mbstring-Funktion verarbeitet werden, werden in UTF-8 codiert.

2. Die Rolle von mb_send_mail

MB_SEND_MAIL ist eine von PHP bereitgestellte Multi-Byte-E-Mail-Sendungsfunktion. Es kann Multi-Byte-Zeichen im E-Mail-Betreff und im Inhalt des Mail verarbeiten und sicherstellen, dass die E-Mail normalerweise in verschiedenen E-Mail-Clients angezeigt wird. Beispiel der Nutzung:

 <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">"Testpost"</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"这是eins封verwenden UTF-8 编码发送的Testpost。"</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>

Standardmäßig verwendet MB_Send_Mail die interne Codierung als E -Mail -Codierung. Solange die interne Codierung korrekt festgelegt ist, wird der gesendete E -Mail -Inhalt nicht verstümmelt.

3. Richten Sie die globale E -Mail -Codierung einheitlich ein

Um jedes Mal, wenn Sie eine E -Mail senden, manuelles Einstellen von Codieren zu vermeiden, wird empfohlen, sie einheitlich festzulegen, wenn das Projekt initialisiert wird:

 <span><span><span class="hljs-comment">// aufstellen PHP Interner Code als 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">// E -Mail -Senden -Beispiel</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">"Globaler Codierungstest"</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"E -Mail -Inhalt,支持中文Und其他多字节字符"</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">// verwenden mb_send_mail Senden Sie eine 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">"Die E -Mail wurde erfolgreich gesendet!"</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">"E -Mail -Senden fehlgeschlagen!"</span></span><span>;
}
</span></span>

Über die obige Methode wird die UTF-8-Codierung automatisch verwendet, solange Sie MB_SEND_MAIL im Projekt zum Senden von E-Mails anrufen, so dass die E-Mail-Codierungsstil der gesamten Anwendung vereint und Probleme mit verstümmelten Code vermieden werden.

4.. Dinge zu beachten

  1. Stellen Sie sicher, dass der Server die Mbtring -Erweiterung installiert und aktiviert hat.

  2. Wenn das E -Mail -Thema Chinese enthält, wird empfohlen, das Thema mb_encode_mimeheader zu verwenden:

 <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">"Testpost"</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>
  1. Es ist am besten, inhaltliche Headerinformationen vom Typ Inhalte für das E-Mail-Körper anzugeben, um sicherzustellen, dass der E-Mail-Client korrekt angezeigt wird:

 <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>

Zusammenfassen:
Durch Einstellen von mb_internal_encoding ("utf-8") während der Projektinitialisierungsphase und dem Senden von E-Mails in Kombination mit mb_send_mail kann die einheitliche globale Codierung der E-Mail erreicht werden, um sicherzustellen, dass chinesische oder andere Multi-Byte-Zeichen für verschiedene Kunden korrekt angezeigt werden.
Dies ist eine sichere und zuverlässige Methode zum Senden von E -Mails, insbesondere für mehrsprachige Systeme und Unternehmensanwendungen.
?>

<hr> <? php // Tail-unabhängiges Code-Beispiel echo "Skriptausführung ist abgeschlossen"; ?>
 <span></span>