PHP

Sửa lỗi font chữ half-width khi gửi mail bằng mb_send_mail()

Bài viết hướng dẫn cách giữ đúng định dạng half-width khi gửi mail

– Khi cài đặt cấu hình gửi mail với charset=\”ISO-2022-JP\” và gửi mail bằng hàm mb_send_mail(), nếu trong nội dung mail có chứa ký tự half-width thì sẽ bị lỗi font.

Ví dụ: Trong nội dung mail có ký tự half-width “testテストTESTテスト”, khi gửi mail thì các ký tự half-width này sẽ bị lỗi font và thành dấu ???



– Cách khắc phục: Sứ dụng hàm mb_convert_encoding() và thuộc tính “ISO-2022-JP-MS” để giữ đúng định dạng của text

Ví dụ đoạn code sau:

mb_language(“ja”);

mb_internal_encoding(“UTF-8”);

$header = “MIME-Version: 1.0\n”;

$header .= “Content-Type: multipart/mixed; boundary=\”__BOUNDARY__\”\n”;

$header .= “From: ….\n”;

$header .= “Reply-To: ….\n”;

$title = ‘….’;

$body = “–__BOUNDARY__\n”;

$body .= “Content-Type: text/plain; charset=\”ISO-2022-JP\”\n\n”;

$body .= html_entity_decode( $msg ) . “\n”;

$body .= “–__BOUNDARY__\n”;

$body .= “testテストTESTテスト”;

$mailtoto = ‘abc@gmail.com’;

$body = mb_convert_encoding($body,”ISO-2022-JP-MS”,”AUTO”);

mb_send_mail( $mailtoto, $title, $body, $header);

 

Sau đó gửi mail, kiểm tra email sẽ thấy không còn bị lỗi font chữ nữa.