我想发送带有正文和附件的电子邮件。我的问题是我添加了使用DataHandler
的用户。
我只能设置一个,因此,如果我先放置主体,然后再放置附件,则只有附件会到达。
try{
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setContent(body, "text/plain");
message.setDataHandler(handler);
MimeBodyPart messageBodyPart = new MimeBodyPart();
if (absolutePath != null) {
Multipart multipart = new MimeMultipart();
messageBodyPart = new MimeBodyPart();
String file = absolutePath;
String name = "podpis";
if (fileName != null) name = fileName;
name += ".jpg";
DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(name);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
}
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
}catch(Exception e){
Log.e("GMAIL SENDER", e.getMessage());
}
}
我一直在寻找一些答案或技巧,但不确定是不是我在研究中使用了错误的方法,或者不是很明显。