<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// 這是文章前的 PHP 部分,與正文內容無關</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"本文由 PHP 自動生成。\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
<h1>mb_send_mail 發送郵件時出現亂碼怎麼辦?避免亂碼的實用方法</h1>
<p>在使用 PHP 的 <code>mb_send_mail郵件頭是避免亂碼的關鍵,尤其是Content-Type和Subject的編碼。對於中文主題,建議使用mb_encode_mimeheader :
<span><span>$subject</span></span> <span>=</span> <span><span>"測試郵件"</span></span> <span>;
</span><span><span>$encoded_subject</span></span> <span>=</span> <span><span class="function_ invoke__">mb_encode_mimeheader</span></span> <span>(</span> <span><span>$subject</span></span> <span>,</span> <span><span>"UTF-8"</span></span> <span>);
</span><p>然後在<span class="fun">mb_send_mail</span>中使用這個編碼後的主題:</p><pre>
<span><span class="function_ invoke__">mb_send_mail</span></span> <span>(</span> <span><span>$to</span></span> <span>,</span> <span><span>$encoded_subject</span></span> <span>,</span> <span><span>$message</span></span> <span>,</span> <span><span>$headers</span></span> <span>);
</span><h2><span><span>4</span></span> <span>. HTML 郵件與附件</span><p>如果發送HTML 郵件,需要將<span class="fun">Content-Type</span>改為<span class="fun">text/html</span> :</p><pre>
<span><span>$headers</span></span> <span>.=</span> <span><span>"Content-Type: text/html; charset=UTF-8\r\n"</span></span> <span>;
</span><p>發送附件時,更要注意MIME 邊界和編碼方式,否則附件名字或內容可能亂碼。</p><h2> <span><span>5</span></span> <span>. 常見註意事項</span><ul><li>確保PHP 腳本文件本身是UTF- <span><span>8</span></span><span>編碼,無BOM。</span><li>郵件內容中不要混用多種字符集。</li><li>如果使用第三方庫(如PHPMailer),通常內部會自動處理編碼問題,更加可靠。</li></ul><h2>總結</h2><p>通過以下三步可以有效避免<span class="fun">mb_send_mail</span>發送郵件時的亂碼:</p><ol><li>設置正確的內部編碼<span class="fun">mb_internal_encoding("UTF-8")</span> 。</li><li>郵件頭中指定字符集<span class="fun">charset=UTF-8</span> 。</li><li>對中文主題使用<span class="fun"><a href="/zh-tw/php/mb_encode_mimeheader.html" target="_blank">mb_encode_mimeheader</a></span>編碼。</li></ol><p>掌握以上方法後,你就可以放心發送中文郵件,不再被亂碼困擾。</p> <span><span><?php</span></span><span>
</span><span><span>// 文章尾部PHP 部分,與正文無關</span></span><span>
</span><span><span>echo</span></span><span> </span><span><span>"文章生成完畢。"</span></span> <span>;</span> <span><span>?></span></span><span>
</span></span></div></div>