当前位置: 代码迷 >> Java相关 >> java mail时,设置邮件附件和邮件正文冲突,该怎么解决
  详细解决方案

java mail时,设置邮件附件和邮件正文冲突,该怎么解决

热度:8078   发布时间:2013-02-25 21:49:11.0
java mail时,设置邮件附件和邮件正文冲突
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重置,导致问题出现。

请问怎么同时添加附件的同时,填写邮件正文,使两个操作互补影响?请直接上代码~

------解决方案--------------------------------------------------------
引用
你的代码问题出在 邮件正文和附件都用了一个对象。。
MimeBodyPart bodyPart = new MimeBodyPart();

所以会被覆盖掉。。。

重新为附件new一个对象一起添加到Multipart就行了
  相关解决方案