- From: Thomas Gambet via cvs-syncmail <cvsmail@w3.org>
- Date: Fri, 09 Oct 2009 06:43:58 +0000
- To: www-validator-cvs@w3.org
Update of /sources/public/2006/unicorn/src/org/w3c/unicorn/util In directory hutz:/tmp/cvs-serv26569/src/org/w3c/unicorn/util Modified Files: Mail.java Log Message: working on utf-8 mail output Index: Mail.java =================================================================== RCS file: /sources/public/2006/unicorn/src/org/w3c/unicorn/util/Mail.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Mail.java 7 Oct 2009 15:54:40 -0000 1.1 +++ Mail.java 9 Oct 2009 06:43:56 -0000 1.2 @@ -1,6 +1,13 @@ package org.w3c.unicorn.util; +import java.io.ByteArrayOutputStream; import java.io.CharArrayWriter; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.io.StringWriter; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; @@ -18,7 +25,9 @@ import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; +import org.apache.commons.lang.StringEscapeUtils; import org.w3c.unicorn.exceptions.UnicornException; +import org.w3c.unicorn.output.AttachmentOutputFormater; import org.w3c.unicorn.output.OutputFormater; public class Mail { @@ -51,24 +60,62 @@ if (outputFormaters.size() > 1) { // New multipart message - Multipart mp = new MimeMultipart("alternative"); - for (OutputFormater outputFormater : outputFormaters) { + MimeMultipart mp = new MimeMultipart(); + for (OutputFormater outputFormater : outputFormaters) { MimeBodyPart bodyPart = new MimeBodyPart(); - bodyPart.addHeader("Content-Type", outputFormater.getMimeType() + ", charset=UTF-8"); - CharArrayWriter writer = new CharArrayWriter(); - outputFormater.produceOutput(contextObjects, writer); - writer.close(); - bodyPart.setContent(writer.toString(), outputFormater.getMimeType()); + if (outputFormater instanceof AttachmentOutputFormater) + bodyPart.setFileName(((AttachmentOutputFormater) outputFormater).getFileName()); + + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream, "UTF-8"); + + outputFormater.produceOutput(contextObjects, outputStreamWriter); + + + + try { + outputStreamWriter.close(); + byteArrayOutputStream.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + + + bodyPart.setContent(byteArrayOutputStream.toString("UTF-8"), outputFormater.getMimeType()); + + bodyPart.setHeader("Content-Type", outputFormater.getMimeType() + "; charset=UTF-8"); + bodyPart.setHeader("Content-Transfer-Encoding", "8bit"); mp.addBodyPart(bodyPart); } msg.setContent(mp); } else { - CharArrayWriter writer = new CharArrayWriter(); - outputFormaters.get(0).produceOutput(contextObjects, writer); - writer.close(); - msg.setContent(writer.toString(), outputFormaters.get(0).getMimeType()); + ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + OutputStreamWriter outputStreamWriter = new OutputStreamWriter(byteArrayOutputStream, "UTF-8"); + //CharArrayWriter wr = new CharArrayWriter(); + + outputFormaters.get(0).produceOutput(contextObjects, outputStreamWriter); + + //outputStreamWriter.write("んのこと仲介手数料もなし"); + + try { + outputStreamWriter.close(); + byteArrayOutputStream.close(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + System.out.println(byteArrayOutputStream.toString("UTF-8")); + + + msg.setContent(byteArrayOutputStream.toString("UTF-8"), outputFormaters.get(0).getMimeType() + "; charset=UTF-8"); + msg.writeTo(new FileOutputStream(new File(Property.get("UPLOADED_FILES_REPOSITORY") + "/test1.txt"))); + msg.setHeader("Content-Type", outputFormaters.get(0).getMimeType() + "; charset=UTF-8"); + msg.setHeader("Content-Transfer-Encoding", "7bit"); + } - + msg.writeTo(new FileOutputStream(new File(Property.get("UPLOADED_FILES_REPOSITORY") + "/test.txt"))); Transport.send(msg); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block @@ -76,6 +123,9 @@ } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); + } catch (IOException e) { + // TODO Auto-generated catch block + e.printStackTrace(); } }
Received on Friday, 9 October 2009 06:44:02 UTC