View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0003812 | mantisbt | localization | public | 2004-05-06 21:41 | 2009-06-26 12:01 |
Reporter | takeshi | Assigned To | siebrand | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | closed | Resolution | won't fix | ||
Summary | 0003812: [jp] Mantis send broken email when lang=Japanese_euc | ||||
Description | see patch | ||||
Tags | No tags attached. | ||||
Attached Files | mantis-jp-email.patch (4,034 bytes)
diff -ru /tmp/mantis-0.18.2/core/email_api.php mantis/core/email_api.php --- /tmp/mantis-0.18.2/core/email_api.php 2004-02-27 00:36:28.000000000 +0900 +++ mantis/core/email_api.php 2004-05-07 10:15:34.000000000 +0900 @@ -580,11 +580,17 @@ # -------------------- # this function sends the actual email function email_send( $p_recipient, $p_subject, $p_message, $p_header='', $p_category='' ) { +#JP + global $g_default_language; global $g_from_email, $g_return_path_email, $g_use_x_priority, $g_use_phpMailer, $g_phpMailer_method, $g_smtp_host, $g_smtp_username, $g_smtp_password, $g_mail_priority; +#JP + $jpmail = eregi('Japanese', $g_default_language); + $jpcode = eregi('EUC', $g_default_language) ? 'EUC-JP' : 'SJIS'; + $t_recipient = trim( $p_recipient ); $t_subject = string_email( trim( $p_subject ) ); $t_message = string_email_links( trim( $p_message ) ); @@ -639,6 +645,11 @@ if ( ! is_blank( $g_smtp_username ) ) { # Use SMTP Authentication $mail->SMTPAuth = true; $mail->Username = $g_smtp_username; +#JP + if ($jpmail) { + $mail->Username = mb_convert_encoding ($g_smtp_username, "JIS", $jpcode); + } + $mail->Password = $g_smtp_password; } @@ -687,6 +698,11 @@ $mail->Subject = $t_subject; $mail->Body = make_lf_crlf( "\n".$t_message ); +#JP + if ($jpmail) { + $mail->Subject = "=?iso-2022-jp?B?" . base64_encode( mb_convert_encoding ($mail->Subject, "JIS", $jpcode) ) . "?="; + $mail->Body = mb_convert_encoding ($mail->Body, "JIS", $jpcode); + } if ( EMAIL_CATEGORY_PROJECT_CATEGORY == config_get( 'email_set_category' ) ) { $mail->AddCustomHeader( "Keywords: $p_category" ); @@ -709,7 +725,13 @@ if ( ON == $g_use_x_priority ) { $t_headers .= "X-Priority: $g_mail_priority\n"; # Urgent = 1, Not Urgent = 5, Disable = 0 } - $t_headers .= 'Content-Type: text/plain; charset=' . lang_get( 'charset' ) . "\n"; +#JP + if ($jpmail) { + $t_headers .= 'Content-Type: text/plain; charset=ISO-2022-JP' . "\n"; + } + else { + $t_headers .= 'Content-Type: text/plain; charset=' . lang_get( 'charset' ) . "\n"; + } if ( EMAIL_CATEGORY_PROJECT_CATEGORY == config_get( 'email_set_category' ) ) { $t_headers .= "Keywords: $p_category\n"; @@ -726,6 +748,13 @@ $t_subject = make_lf_crlf( $t_subject ); $t_message = make_lf_crlf( $t_message ); $t_headers = make_lf_crlf( $t_headers ); +#JP + if ($jpmail) { + $t_recipient = mb_convert_encoding ($t_recipient, "JIS", $jpcode); + $t_subject = "=?iso-2022-jp?B?" . base64_encode( mb_convert_encoding ($t_subject, "JIS", $jpcode) ) . "?="; + $t_message = mb_convert_encoding ($t_message, "JIS", $jpcode); + $t_headers = mb_convert_encoding ($t_headers, "JIS", $jpcode); + } # set the SMTP host... only used on window though ini_set( 'SMTP', config_get( 'smtp_host', 'localhost' ) ); diff -ru /tmp/mantis-0.18.2/core/utility_api.php mantis/core/utility_api.php --- /tmp/mantis-0.18.2/core/utility_api.php 2004-01-11 17:16:10.000000000 +0900 +++ mantis/core/utility_api.php 2004-05-07 10:24:26.000000000 +0900 @@ -25,10 +25,15 @@ # converts a 1 value to X # converts a 0 value to a space function trans_bool( $p_num ) { +#JP + global $g_default_language; + $jpmail = eregi('Japanese', $g_default_language); + if ( 0 == $p_num ) { return ' '; } else { - return 'X'; + return ($jpmail) ? 'O' : 'X'; +# return 'X'; } } diff -ru /tmp/mantis-0.18.2/lang/strings_japanese_euc.txt mantis/lang/strings_japanese_euc.txt --- /tmp/mantis-0.18.2/lang/strings_japanese_euc.txt 2004-02-26 23:24:10.000000000 +0900 +++ mantis/lang/strings_japanese_euc.txt 2004-05-03 14:50:27.000000000 +0900 @@ -16,7 +16,7 @@ ?> <?php # Charset -$s_charset = 'x-euc-jp'; +$s_charset = 'euc-jp'; # Group commands menuitems $s_actiongroup_menu_move = 'Move'; | ||||
Certainly, when email is sent, We japanese should use "ISO-2022-JP".(7bit encoding) I think that we cannot do anything as long as the policy is not changed. Only modify privately in Japan. |
|
Please retest this with Mantis 1.2.0a2. As it now uses UTF-8, this issue should be resolved. |
|
In git trunk Extended Unix Code is no longer supported in favour of Unicode/UTF-8. |
|