prise en base64 chaîne de contenu d'une image à partir d'un mimepart en Java

Je suis en train d'essayer d'obtenir le base64 contenu d'un MimePart dans un MimeMultiPart, mais j'ai du mal avec le package Javamail. Je veux simplement la Chaîne encodée en base64 d'une certaine image en ligne, il ne semble pas être un moyen facile de faire cela.
J'ai écrit une méthode qui va prendre le mime du contenu (comme une chaîne de caractères) et un nom d'image en tant que paramètre, et les recherches pour la partie qui contient le base64 contenu de ce nom de l'image, et à la fin renvoie cette chaîne base64 (ainsi que le type de contenu, mais cela n'est pas pertinent pour cette question)

Voici le code correspondant (y compris les importations):

import javax.activation.DataSource;
import javax.mail.MessagingException;
import javax.mail.Part;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimePart;
import javax.mail.util.ByteArrayDataSource;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.io.IOUtils;
import com.sun.mail.util.BASE64DecoderStream;
private static String[] getBase64Content(String imageName, String mimeString) throws MessagingException, IOException
{
System.out.println("image name: " + imageName + "\n\n");
System.out.println("mime string: " + mimeString);
String[] base64Content = new String[2];
base64Content[0] = "";
base64Content[1] = "image/jpeg"; //some default value
DataSource source = new ByteArrayDataSource(new ByteArrayInputStream(mimeString.getBytes()), "multipart/mixed");  
MimeMultipart mp = new MimeMultipart(source);
for (int i = 0; i < mp.getCount(); i++)
{
MimePart part = (MimePart) mp.getBodyPart(i);
String disposition = part.getDisposition();
if (disposition != null && disposition.equals(Part.INLINE))  
{
if (part.getContentID() != null && part.getContentID().indexOf(imageName) > -1) //check if this is the right part
{
if (part.getContent() instanceof BASE64DecoderStream)
{
BASE64DecoderStream base64DecoderStream = (BASE64DecoderStream) part.getContent();
StringWriter writer = new StringWriter();
IOUtils.copy(base64DecoderStream, writer);
String base64decodedString = writer.toString();
byte[] encodedMimeByteArray = Base64.encodeBase64(base64decodedString.getBytes());
String encodedMimeString = new String(encodedMimeByteArray);
System.out.println("encoded mime string: " + encodedMimeString);
base64Content[0] = encodedMimeString;
base64Content[1] = getContentTypeString(part);
} 
}
}
}
return base64Content; 
}

Je ne peut pas coller la totalité de la production comme le post serait trop long, mais c'est une partie de celui-ci:

image name: image001.[email protected].4D637150

C'est une partie de la mimeString d'entrée, il ne trouve de ce (bon) cadre avec le nom de l'image:

--_004_225726A14AF9134CB538EE7BD44373A04D9E3F3940menexch2007ex_
Content-Type: image/gif; name="image001.gif"
Content-Description: image001.gif
Content-Disposition: inline; filename="image001.gif"; size=1070;
creation-date="Fri, 02 Apr 2010 16:19:43 GMT";
modification-date="Fri, 02 Apr 2010 16:19:43 GMT"
Content-ID: <image001.[email protected].4D637150>
Content-Transfer-Encoding: base64
R0lGODlhEAAQAPcAABxuHJzSlDymHGy2XHTKbITCdNTu1FyqTHTCXJTKhLTarCSKHEy2JHy6bJza
lITKfFzCPEyWPHS+XHzCbJzSjFS+NLTirBx6HHzKdOz27GzCZJTOjCyWHKzWpHy2ZJTGhHS+VLzi
(more base64 string here that I'm not going to paste)

Mais quand il a finalement impressions de l'encodage mime, c'est une autre chaîne que j'attendais:

encoded mime string: R0lGODlhEAAQAO+/vQAAHG4c77+90pQ877+9HGzvv71cdO+/vWzvv73vv71077+977+977+9XO+/vUx077+9XO+/vcqE77+92qwk77+9HEzvv70kfO+/vWzvv73alO+

Clairement différente de celle qu'a sa sortie dans la partie ci-dessus. Je ne suis même pas sûr de ce que je vois ici, mais quand j'essaye de charger une image dans une page html, ça ne marchera pas.

C'est assez frustrant pour moi, puisque tout ce que je veux, c'est un morceau de texte que j'ai déjà l'impression, mais je préfère ne pas avoir à chercher à travers le mime de la chaîne de moi-même pour la partie correcte, l'introduction de toutes sortes de bugs.Donc j'aurais vraiment préférer utiliser le Javamail bibliothèque mais pourrait utiliser un peu d'aide sur la façon d'obtenir effectivement que mime correct de la chaîne.