JavaMail BaseEncode64 Fehler
Ich bin derzeit an der Entwicklung einer Anwendung, die die download-Anhang vom gmail-Konto.
Jetzt bekam ich Fehlermeldung, wenn das herunterladen von Zip-Anlage. Aber, nicht alle, einige, die ich abrufen kann, es ohne Fehler. Hier ist die Exception-Meldung:
Exception in thread "main" com.sun.mail.util.DecodingException: BASE64Decoder: Error in encoded stream: needed 4 valid base64 characters but only got 1 before EOF, the 10 most recent characters were: "Q3w5ilxj2P"
FYI: ich war in der Lage, laden Sie den Anhang über die gmail-web-interface.
Hier ist das snippet:
Multipart multipart = (Multipart) message.getContent();
for (int i = 0; i < multipart.getCount(); i++) {
BodyPart bodyPart = multipart.getBodyPart(i);
if (bodyPart.getFileName().toLowerCase().endsWith("zip") ||
bodyPart.getFileName().toLowerCase().endsWith("rar")) {
InputStream is = bodyPart.getInputStream();
File f = new File("/tmp/" + bodyPart.getFileName());
FileOutputStream fos = new FileOutputStream(f);
byte[] buf = new byte[bodyPart.getSize()];
int bytesRead;
while ((bytesRead = is.read(buf)) != -1) {
fos.write(buf, 0, bytesRead);
}
fos.close();
}
}
}
Jemand eine Idee, wie man dieses problem umgehen?
- Viel Glück mit diesem noch?
- NÖ, noch nicht. Scheint, wie. niemand ist daran interessiert, java-mail:(
Du musst angemeldet sein, um einen Kommentar abzugeben.
Aus einer Liste der bekannten Einschränkungen, bugs, Probleme der JavaMail:
So sollten Sie nur ausschalten teilweise fetch in imap-Sitzung. Zum Beispiel:
Quelle: https://javaee.github.io/javamail/docs/api/com/sun/mail/imap/package-summary.html
properties.setProperty("mail.imaps.partialfetch", "false");
(ich habe auch versucht, die Einstellung "mail.imap.partialfetch", das hat auch nicht geholfen), aber ich bekomme immer noch eine Ausnahme von der Art "BASE64Decoder: Fehler in codierten stream: benötigt werden 4 gültige base64-Zeichen aber nur noch 1 vor der EOF"Wenn Sie Mit java-mail-API, dann fügen Sie diese Zeilen, während Sie connectin den imap-server........
........
.... dein code ..
......
sollte es funktionieren.