私たちのアプリケーションは、Webフォームからテキストを取り出し、電子メールで適切なユーザーに送信します。しかし、誰かが悪名高い "スマート引用符"やWordからの他の特殊文字をコピー/ペーストすると、事態が激しくなります。MimeMessageのスマート引用符がOutlookに正しく表示されない
におけるユーザーの種類、彼は素敵なことを私-isn'tに「こんにちは」と述べましたか?
しかし、メッセージがOutlook 2003で表示されたとき、それは次のように出てくる:彼はその素敵なをmeisntするハローを言っ
?このため
コードはでした:
Session session = Session.getInstance(props, new MailAuthenticator());
Message msg = new MimeMessage(session);
//removed setting to/from addresses to simplify
msg.setSubject(subject);
msg.setText(text);
msg.setHeader("X-Mailer", MailSender.class.getName());
msg.setSentDate(new Date());
Transport.send(msg);
は少し研究した後、私はこれはおそらく、文字エンコーディングの問題だった考え出しとUTF-8に物事を移動しようとしました。だから、私はthuslyコードを更新:
Session session = Session.getInstance(props, new MailAuthenticator());
MimeMessage msg = new MimeMessage(session);
//removed setting to/from addresses to simplify
msg.setHeader("X-Mailer", MailSender.class.getName());
msg.addHeader("Content-Type", "text/plain");
msg.addHeader("charset", "UTF-8");
msg.setSentDate(new Date());
Transport.send(msg);
これは近い私を得たが、何の葉巻:
彼は、MEA-isnÂ'tにÂ「helloÂは」素敵なことを言っていませんか?
私はこれが珍しい問題ではないと思います。私は何を欠いていますか?
charsetはContent-Typeオプションで、別々のヘッダーではありません。そうでなければ、それは良い見ている。 – Piskvor