- Java code
MimeBodyPart bodyPart = new MimeBodyPart();if (sMailBody != null) { bodyPart.setContent(sMailBody.toString(), "text/html;charset=utf-8"); }if (null != sAttachPath) { File file = new File(sAttachPath); FileDataSource fds = new FileDataSource(file); bodyPart.setDataHandler(new DataHandler(fds)); bodyPart.setFileName(fds.getName()); mp.addBodyPart(bodyPart);}
当执行到bodyPart.setContent时,成功将正文设置成输入的内容,但是执行bodyPart.setDataHandler后,之前设置的正文变成null,同时添加附件成功。
debug之后发现:两个操作都会设置MimeBodyPart DataHandler属性,导致两个操作冲突。也就是说:正文和附件都被存储在DataHandler的属性中,于是后面的操作会将前面操作设置的DataHandler重置,导致问题出现。
请问怎么同时添加附件的同时,填写邮件正文,使两个操作互补影响?请直接上代码~
------解决方案--------------------------------------------------------