Ich versuche, eine Datei base64-encoded über apache.commons.mail
zu senden und ich kann einfach nicht naht, um die Content-Transfer-Encoding: base64
Header zu bekommen, wo es hingehen soll.Apache Commons Email encode anhängen mit base64
// Create the email
MultiPartEmail email = new MultiPartEmail();
email.setSmtpPort(587);
email.setDebug(false);
email.setHostName("smtp.gmail.com");
email.setAuthentication("[email protected]", "password");
email.setTLS(true);
email.addTo("[email protected]");
email.setFrom("[email protected]");
email.setSubject("subject");
email.attach(new ByteArrayDataSource(
Base64.encodeBase64(attachFull.getBytes()), "text/plain"),
"samplefile.txt",
"sample file desc",
EmailAttachment.ATTACHMENT
);
Und das ist, was der Empfänger bekommt.
------=_Part_0_614021571.1334210788719
Content-Type: text/plain; charset=Cp1252; name=texto.txt
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment; filename=samplefile.txt
Content-Description: sample file desc
Wie ich angeben, dass die Datei Base64 codiert?
Das könnte ... Ich hatte einige Erfolge mit dem Hinzufügen einer 'MimeMultipart()' (javax.mail) als externen Teil zu commons.mail. Aber etwas stimmt immer noch nicht. Ich kann die Base64-Codierung vermasseln. Lass mich ein bisschen weiter graben ... – Frankie
Akzeptiert deine Antwort, da sie mich auf den richtigen Weg gebracht hat. Posted meins als Referenz. Vielen Dank. – Frankie