解决java mail发送TXT附件被直接显示在正文中的问题
2014-06-20 13:23
501 查看
这两天遇到一个问题,关于使用java mail发送邮件的问题.
具体是这样子的:我使用java mail发送异常报告邮件,邮件中有一个包括异常日志的附件,和关于设备信息的邮件正文.如果日志为log后缀名,那么在我的qq邮箱中显示正常.但是如果把附件的后缀名改为txt之后,就变成把附件中的内容直接显示在邮件正文中了.而我原来设置的邮件正文则不在了.
我的代码是这样写的:
添加附件:
发送邮件:
后来我试着发给网易邮箱.发现就变成正文是空白的.但是附件却多了一个.第二个附件正是我设置在邮件正文中的内容.
各种百度,谷歌,stackoverflow后均未找到答案.后来我想,用这种方式发邮件,是不是qq邮箱会把第一个txt附件作为正文显示.于是修改了设置邮件正文的代码如下,把正文设为multipart的第一个:
具体是这样子的:我使用java mail发送异常报告邮件,邮件中有一个包括异常日志的附件,和关于设备信息的邮件正文.如果日志为log后缀名,那么在我的qq邮箱中显示正常.但是如果把附件的后缀名改为txt之后,就变成把附件中的内容直接显示在邮件正文中了.而我原来设置的邮件正文则不在了.
我的代码是这样写的:
添加附件:
public void addAttachment(String filePath, String fileName) throws Exception { BodyPart messageBodyPart = new MimeBodyPart(); ((MimeBodyPart)messageBodyPart).attachFile(filePath); multipart.addBodyPart(messageBodyPart); }
发送邮件:
public boolean send() throws MessagingException { if (!user.equals("") && !pass.equals("") && !to.equals("") && !from.equals("")) { Session session = Session.getDefaultInstance(props, this); Log.d("SendUtil", host + "..." + port + ".." + user + "..." + pass); MimeMessage msg = new MimeMessage(session); msg.setFrom(new InternetAddress(from)); InternetAddress addressTo = new InternetAddress(to); msg.setRecipient(MimeMessage.RecipientType.TO, addressTo); msg.setSubject(subject); msg.setSentDate(new Date()); // setup message body BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(body); multipart.addBodyPart(messageBodyPart); // Put parts in message msg.setContent(multipart); // send email Transport.send(msg); return true; } else { return false; } }
后来我试着发给网易邮箱.发现就变成正文是空白的.但是附件却多了一个.第二个附件正是我设置在邮件正文中的内容.
各种百度,谷歌,stackoverflow后均未找到答案.后来我想,用这种方式发邮件,是不是qq邮箱会把第一个txt附件作为正文显示.于是修改了设置邮件正文的代码如下,把正文设为multipart的第一个:
// setup message body BodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setText(body); multipart.addBodyPart(messageBodyPart, 0);再发送邮件测试,结果在qq和网易邮件上均显示正常了.
相关文章推荐
- 解决java mail发送TXT附件被直接显示在正文中的问题
- 解决java mail发送TXT附件被直接显示在正文中的问题
- Email小案例改进版——解决带附件不显示邮件正文问题
- python发送邮件,含有正文,附件,正文中含有图片(图片直接在邮件内容中显示)
- 解决centos6.4打开windows下txt文档显示乱码的问题
- 解决用Email发送HTML邮件显示乱码问题,并用大字符串类型:StringBuilder
- ECSHOP发送邮件显示格林尼治时间问题的解决
- SMTP发送邮件附件问题已经得到解决!!!
- 关于解决Jmail发送附件和html邮件的问题
- 关于双击cpp文件无法直接打开,VS2008提示“向程序发送命令时出现问题”的解决
- firefox浏览shtml时直接显示源代码问题解决办法
- Javamail 发送附件中文名乱码问题解决
- 教你如何将txt复制到excel的各个单元格;并解决科学计数法显示问题及导致的个位数变0问题
- 附件下载直接显示另存为对话框并保存原有中文文件名的解决办法
- Ubuntu10.04下语言安装以及txt文件显示中文乱码问题的解决
- [转]关于解决Jmail发送附件和html邮件的问题
- 解决 英文版fedora TXT 文件显示乱码的问题
- 关于解决Jmail发送附件和html邮件的问题
- linux bash下通过mailx发送中文内容显示为附件的解决
- firefox访问页面 直接显示代码问题问题解决办法