<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 事前に依存しないコードの例</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">"現存在する PHP バージョン:<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">/*
タイトル: 結合する方法 mb_send_mail そして mb_internal_encoding グローバルメールを均1つに設定します?
存在する PHP メールを送信するとき,キャラクターエンコーディング処理は非常に重要な問題です,尤其是存在する涉及多语言内容时。PHP 組み込み `mail()` 関数は電子メールを送信できます,ただし、直接使用する場合,中国人や他の非非に遭遇する可能性が非常に高い ASCII 文字化けされたキャラクターの問題。この問題を解決するために,PHP 提供された `mb_send_mail` そして `mb_internal_encoding` 2つのマルチバイト文字列関数,電子メールのコーディングを効果的に統合できます。
1つ、mb_internal_encoding の役割
-----------------------------------
`mb_internal_encoding` セットアップ用 PHP 内部マルチバイト文字列のデフォルトエンコード。通过统1つ内部编码,可以确保字符串存在する处理过程中不会出现乱码。例えば:
```php
mb_internal_encoding("UTF-8");
</span></span></span>このコード行は、PHPのUTF-8への内部エンコードを設定し、MBSTring関数を使用して処理されたすべての後続の文字列はUTF-8でエンコードされます。
MB_SEND_MAILは、PHPが提供するマルチバイトセキュアメール送信機能です。メールの件名とコンテンツでマルチバイト文字を処理し、メールが異なるメールクライアントに正常に表示されるようにすることができます。使用例:
<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">"テストメール"</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"这是1つ封使用 UTF-8 编码发送的テストメール。"</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>デフォルトでは、 MB_SEND_MAILは内部エンコードを電子メールエンコードとして使用します。そのため、内部エンコードが正しく設定されている限り、送信された電子メールコンテンツは文字化けされません。
電子メールを送信するたびに手動でエンコードを設定しないようにするには、プロジェクトが初期化されたときに均一に設定することをお勧めします。
<span><span><span class="hljs-comment">// 設定 PHP 内部コードとして 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">// 電子メールの送信例</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">"グローバルコーディングテスト"</span></span><span>;
</span><span><span class="hljs-variable">$message</span></span><span> = </span><span><span class="hljs-string">"電子メールテキストコンテンツ,支持中文そして其他多字节字符"</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">// 使用 mb_send_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">"電子メールは正常に送信されました!"</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">"メールの送信に失敗しました!"</span></span><span>;
}
</span></span>上記の方法を通して、プロジェクトのMB_SEND_MAILに電話して電子メールを送信する限り、UTF-8エンコードが自動的に使用され、アプリケーション全体の電子メールエンコードスタイルを統合し、コードの問題を避けます。
サーバーにMBSTRING拡張機能がインストールされ、有効になっていることを確認してください。
電子メールのトピックに中国語が含まれている場合、 MB_ENCODE_MIMEHEADERを使用してトピックをエンコードすることをお勧めします。
<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">"テストメール"</span></span><span>, </span><span><span class="hljs-string">"UTF-8"</span></span><span>);
</span></span>電子メールボディのコンテンツタイプのヘッダー情報を指定して、電子メールクライアントが正しく表示されるようにすることをお勧めします。
<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>要約:
プロジェクトの初期化フェーズ中にMB_INTERNAL_ENCODING( "UTF-8")を設定し、 MB_SEND_MAILと組み合わせて電子メールを送信することにより、中国語または他のマルチバイト文字がさまざまなクライアントに正しく表示されるように、電子メールの統一されたグローバルエンコードを達成できます。
これは、電子メールを送信する安全で信頼できる方法であり、特に多言語システムやエンタープライズアプリケーションに適しています。
?>
<span></span>