- - PR -
j2sdkのバージョンアップに伴うjavamaiでの問題
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-01-17 20:01
現在、javamailを利用したツールのバージョンアップの為に、
j2sdkのバージョンを上げたのですが、メール送信時に 全角文字列で本文を終了した際に「w)」が付いてしまうという現象が 発生してしまいました。 環境は、下記の通りです。 OS:WindowsXp(テスト用にXPでやっています) j2sdk:j2sdk-1_3_1_14 → j2sdk-1_4_2_06 に変更 javamail:javamail-1_2 また、現象を再現する為に下記のような簡易コードを作成し、 メール送信を行い、参照した所「あw)w)」という表示になってしまいます。 ※outlook expressで参照。 j2sdk-1_3_1_14では再現されず。 全角で終了している場合は全て再現される。 ------------------------------------------------------------------ public class SendMail { public static void main(String[] args) { try { Properties prop = System.getProperties(); // SMTPサーバー prop.put("mail.smtp.host",SMTPサーバ); Session session=Session.getDefaultInstance(props,null); MimeMessage mimeMessage=new MimeMessage(session); // 送信元メールアドレスと送信者名 mimeMessage.setFrom(new InternetAddress(送信元メールアドレス,送信者名,"iso-2022-jp")); // 送信先メールアドレス mimeMessage.setRecipients(Message.RecipientType.TO,送信先メールアドレス); // メールタイトル mimeMessage.setSubject("TestMail","iso-2022-jp"); // メール本文 mimeMessage.setText("あ","iso-2022-jp"); // メール形式 mimeMessage.setHeader("Content-Type","text/plain; charset=\\"iso-2022-jp\\""); // 送信日付 mimeMessage.setSentDate(new Date()); // 送信 Transport.send(mimeMessage); } catch (Exception e) { e.printStackTrace(); } } } ------------------------------------------------------------------ このような現象をご存知でしょうか? また、対策方法等がありましたら教えて頂けないでしょうか? すみませんが、よろしくお願い致します。 |
|
投稿日時: 2005-01-17 21:14
確認せずに回答して申し訳ないのですが、JavaMailのバージョンも上げてみても一緒なんですかね。確か今、JavaMailのバージョンは 1.3.1ぐらいだったと思いますけど。
|
|
投稿日時: 2005-01-17 21:38
先程、javamailのバージョンを1.3.2に上げ、j2sdk-1_4_2_06でも試してみましたが、
うまくいきませんでした。 ちなみに、javamail:1.3.2+j2sdk-1_3_1_14の場合は問題なく送信できました。 |
|
投稿日時: 2005-01-17 22:32
末尾に日本語が含まれていると余計な文字がつくみたいですね。
(しかもOutlook でしか再現しないです。) これは javamail のバグっぽいです。 応急処置として末尾に半角スペースを入れてみてはいかがでしょう? |
|
投稿日時: 2005-01-17 23:39
過去のスレッドに類似がありますが、参考になるでしょうか。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=12714&forum=12&5 |
|
投稿日時: 2005-01-18 18:05
いろいろとご意見ありがとうございます。
半角スペースでは半角スペース分文字数が増え、改行文字では改行が増えますが、 メール本文は化ける事なく表示できました。 上記2つの方法を選択するか、バグが直るまで待つかという感じで、 その中でよいと思うものを選択するという感じですかね。 ご意見ありがとうございました。 |
|
投稿日時: 2005-01-18 19:29
この問題、わりと有名なBugだと思ってたけど、
ずいぶん最近の日付で登録されてますね・・・ http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6211145 "ISO-2022-JP" の換わりに "\u0001ISO-2022-JP" を指定すると、Java1_4_1以前の CharsetEncoderが使用されるので、一応このBugを回避することができます。 が、javamailでそれをやると、charset=に変な値が付いてしまいそう・・・ [ メッセージ編集済み 編集者: coasm 編集日時 2005-01-18 19:39 ] |
|
投稿日時: 2005-01-18 20:53
ちょっと便乗質問です。
Jakarta Commons Emailってありますけど、これ、どうなんですかね? メール送信に限ればJavaMailと同程度と考えていいんですかね? ご存じの方いらっしゃいますか? |
1