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.