Hallo,
ich habe ein Java Anwendung mit Hilfe des Web geschrieben, welche es ermöglicht, eine Email aus Open Office zu schreiben. Wenn ich keine Multiparts für Message verwende, funktioniert es auch tadellos. Wenn ich nun Bodyparts einsetze, kann ich zwar die Email versenden, dies hat aber keine Inhalt mehr. Der Quellcode zu den Bodyparts sieht so aus:
[Java]
Authenticator smtpAuthenticator = new SmtpMailAuthenticator(config.getUser(),config.getPassword());
Session smtpSession = Session.getInstance(mailProperties,smtpAuthenticator);
if (smtpSession != null) {
StringTokenizer tokenizer = new StringTokenizer(config.getRecipients(),";");
Address[] addresses = new InternetAddress[tokenizer.countTokens()];
int i = 0;
while (tokenizer.hasMoreTokens()) {
String recipient = tokenizer.nextToken();
addresses = new InternetAddress(recipient);
i++;
}
Message mimeMessage = new MimeMessage(smtpSession);
mimeMessage.setFrom(new InternetAddress(config.getSender()));
mimeMessage.setRecipients(Message.RecipientType.TO,addresses);
mimeMessage.setSubject(config.getSubject());
// changing 20100505
MimeBodyPart mbp1 = new MimeBodyPart();
//mbp1.setText("Test");
mbp1.setContent(content,"text/plain");
File file = new File("//Temp/JavaMail-1.4.pdf");
//FileDataSource fds = new FileDataSource(file);
MimeBodyPart mbp2 = new MimeBodyPart();
try {
mbp2.attachFile(file);
//mbp2.setFileName("Test.pdf");
//mbp2.setContent(file, "multipart/*");
mbp2.setContent(content,"text/plain");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
String o = "kein Anhange gefunden";
mbp2.setContent(o, "text/plain");
}
//mbp2.setDataHandler(new DataHandler(fds));
MimeMultipart mmp = new MimeMultipart();
mmp.addBodyPart(mbp1);
mmp.addBodyPart(mbp2);
//mimeMessage.setContent(arg0)
mimeMessage.setContent(mmp);
mimeMessage.saveChanges();
Transport transport = smtpSession.getTransport("smtp");
transport.connect();
transport.sendMessage(mimeMessage,addresses);
transport.close();
[/Java]
Im Object "content" ist der Text enthalten, welcher aus Open Office kommt. Wenn ich
[Java]mimeMessage.setContent(mmp) [/Java] mit [Java]mimeMessage.setContent(content, "text/plain") [/Java] austausche, habe ich auch den Inhalt für den Email Body, nur halt nicht bei Bodyparts.
Hat jmd. ein Idee, woran es liegen könnte? Es dürfte ja nicht mehr mit Open Office zu tun haben, da ich ja hier bereits OOo verlassen habe.
Danke voraus!
vg
Martin
ich habe ein Java Anwendung mit Hilfe des Web geschrieben, welche es ermöglicht, eine Email aus Open Office zu schreiben. Wenn ich keine Multiparts für Message verwende, funktioniert es auch tadellos. Wenn ich nun Bodyparts einsetze, kann ich zwar die Email versenden, dies hat aber keine Inhalt mehr. Der Quellcode zu den Bodyparts sieht so aus:
[Java]
Authenticator smtpAuthenticator = new SmtpMailAuthenticator(config.getUser(),config.getPassword());
Session smtpSession = Session.getInstance(mailProperties,smtpAuthenticator);
if (smtpSession != null) {
StringTokenizer tokenizer = new StringTokenizer(config.getRecipients(),";");
Address[] addresses = new InternetAddress[tokenizer.countTokens()];
int i = 0;
while (tokenizer.hasMoreTokens()) {
String recipient = tokenizer.nextToken();
addresses = new InternetAddress(recipient);
i++;
}
Message mimeMessage = new MimeMessage(smtpSession);
mimeMessage.setFrom(new InternetAddress(config.getSender()));
mimeMessage.setRecipients(Message.RecipientType.TO,addresses);
mimeMessage.setSubject(config.getSubject());
// changing 20100505
MimeBodyPart mbp1 = new MimeBodyPart();
//mbp1.setText("Test");
mbp1.setContent(content,"text/plain");
File file = new File("//Temp/JavaMail-1.4.pdf");
//FileDataSource fds = new FileDataSource(file);
MimeBodyPart mbp2 = new MimeBodyPart();
try {
mbp2.attachFile(file);
//mbp2.setFileName("Test.pdf");
//mbp2.setContent(file, "multipart/*");
mbp2.setContent(content,"text/plain");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
String o = "kein Anhange gefunden";
mbp2.setContent(o, "text/plain");
}
//mbp2.setDataHandler(new DataHandler(fds));
MimeMultipart mmp = new MimeMultipart();
mmp.addBodyPart(mbp1);
mmp.addBodyPart(mbp2);
//mimeMessage.setContent(arg0)
mimeMessage.setContent(mmp);
mimeMessage.saveChanges();
Transport transport = smtpSession.getTransport("smtp");
transport.connect();
transport.sendMessage(mimeMessage,addresses);
transport.close();
[/Java]
Im Object "content" ist der Text enthalten, welcher aus Open Office kommt. Wenn ich
[Java]mimeMessage.setContent(mmp) [/Java] mit [Java]mimeMessage.setContent(content, "text/plain") [/Java] austausche, habe ich auch den Inhalt für den Email Body, nur halt nicht bei Bodyparts.
Hat jmd. ein Idee, woran es liegen könnte? Es dürfte ja nicht mehr mit Open Office zu tun haben, da ich ja hier bereits OOo verlassen habe.
Danke voraus!
vg
Martin