我正在使用javamail API创建电子邮件并将文件附加到其中。
有没有办法使用javamail api发送带附件的电子邮件 没有在文件系统上物理创建文件。
我只是想从应用中挑选一些数据 并将其作为文件附在我的电子邮件中
我应该如何附上:
try {
// create a message
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address = {new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO, address);
msg.setSubject(subject);
// create and fill the first message part
MimeBodyPart mbp1 = new MimeBodyPart();
mbp1.setText(msgText1);
// create the second message part
MimeBodyPart mbp2 = new MimeBodyPart();
// attach the file to the message
**mbp2.attachFile(filename);**
// create the Multipart and add its parts to it
Multipart mp = new MimeMultipart();
mp.addBodyPart(mbp1);
mp.addBodyPart(mbp2);
// add the Multipart to the message
msg.setContent(mp);
// set the Date: header
msg.setSentDate(new Date());
// send the message
Transport.send(msg);
TY非常多!
答案 0 :(得分:10)
如果您使用的是JavaMail 1.4或更高版本,则可以使用java.mail.util.ByteArrayDataSource
这样的
MimeBodyPart mbp = new MimeBodyPart();
String data = "any ASCII data";
DataSource ds = new ByteArrayDataSource(data, "application/x-any");
mbp.setDataHandler(new DataHandler(ds));