使用Java mail发送邮件附件出现附件上产生.eml文件夹的问题及附件名.bin结尾问题...
近期,线上项目发出邮件是PDF附件但收到的邮件附件格式却不是PDF,发送邮件的技术为JAVA mail 经复现错误现象为下图:
163邮箱:
QQ邮箱:
eml问题排查思路:
1.首先,排除附件本身的问题,附件本身在执行发送邮件之前进行本地服务器文件落地,确认落地的文件确实为PDF格式且附件正常可用。
2.其次,排查公司用的邮件服务器问题是不是对PDF文件进行了某种转码,经验证通过从邮件服务器手动发送邮件,确认收到后的邮件附件正常为PDF格式。
3.最后,跟踪发送邮件的代码并在网上查询相关资料未发现任何和.eml有关的材料,通过在一篇博客中查看正确实例发现在Java mail中正文和附件使用的不是一个MimeBodyPart对象,修改后示例如下:
经测试错误原因是邮件正文和邮件附件用的MimeBodyPart对象是同一个,进而导致上述现象,解决办法为正文是一个MimeBodyPart对象,一个附件是一个MimeBodyPart对象,并将两个对象分别添加到MimeMultipart()
中,经再次测试,问题解决。
.bin问题解决
我在项目中遇到的问题并不是.bin问题,不过网络上有一些关于这个的资料,在本篇帖子中做个记录。
.bin问题的原因为附件名过长导致附件名编码异常,要做几处更改,如下:
问题修复后样图:
QQ邮箱
163邮箱
总结:
在遇到上述这种debug跟不到结尾的问题往往摸不着头脑,所以 解决这种问题的思路应该使用排除法,排除掉外界环境的因素后,认真有条理的跟踪程序代码并且参考一份正确的实例进行比对,这是解决问题的最快办法,至于问题原因这个有时间可以研究,但是在工作中要做的是以最快的速度解决生产环境出现的问题,降低损失。
在本次解决问题的过程中我参考了一篇正确示例代码,网址如下:
https://www.cnblogs.com/h--d/p/6138900.html
转载于:https://www.cnblogs.com/XH09/p/10981329.html
使用Java mail发送邮件附件出现附件上产生.eml文件夹的问题及附件名.bin结尾问题...相关推荐
- Java GUI编程:swing实现上传tiff文件至hdfs功能
上传tiff文件至hdfs pom <?xml version="1.0" encoding="UTF-8"?> <project xmlns ...
- java文件客户端下载_使用Java写一个minio的客户端上传下载文件
标签:color ati tty java system wired format media param 前言: 确保已经安装了minio的服务端 代码: pom.x ...
- webflow ajax,java开发之spring webflow实现上传单个文件及多个文件功能实例
本文实例讲述了java开发之spring webflow实现上传单个文件及多个文件功能.分享给大家供大家参考,具体如下: 上传单个文件 准备 1. 如果你项目中使用了spring security的话 ...
- Java在hdfs上创建新文件夹遇错误:Permission denied: user=atguigu, access=READ_EXECUTE, inode=“/tmp“:root:supe
在IDEA里编写测试代码用于在HDFS上创建新文件夹遇到以下错误: Permission denied: user=atguigu, access=READ_EXECUTE, inode=" ...
- 使用cmd命令在桌面上新建一个文件夹,且在文件夹中新建一个.java文件,使用cmd命令实现.java文件的编译运行
标题使用cmd命令在桌面上新建一个文件夹,且在文件夹中新建一个.java文件,使用cmd命令实现.java文件的编译运行 1.在电脑桌面使用快捷键win+r打开 2.打开cmd命令界面之后使用md d ...
- 电脑上的计算机可以加密码,电脑上怎么给文件夹设置密码
有些重要的文件或比较隐私的文件存放在电脑上,这些文件我们只希望自己能看到并使用,不希望别人访问.那么,最好的办法就是去对这些文件进行加密.那么电脑上怎么给文件夹设置密码呢?下面和佰佰安全网了解下吧. ...
- 弹性服务器怎么上传文件,上传哪个文件夹弹性云服务器
上传哪个文件夹弹性云服务器 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 本节 ...
- 服务器怎么打开本地电脑文件夹,如何在云服务器上打开本地文件夹
如何在云服务器上打开本地文件夹 内容精选 换一换 Tomcat是一个被广泛使用的Java Web应用服务器.本文介绍了在华为云弹性云服务器上部署Java Web环境的操作步骤.首先需要下载部署Java ...
- web上传整个文件夹
在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现. 先说下要求: PC端全平台支持,要求支持Windows,Mac,Linux 支持所 ...
最新文章
- 【转载】CSS 入门精要(一)
- Java高并发编程(十):Java并发工具类
- Java 设计模式——状态模式
- cnpm在ubuntu19.10下面的安装以及vue.js中el的意思
- 解读ASP.NET 5 MVC6系列(10):Controller与Action
- Struts2中EL表达式的取值范围问题
- 【转载】java中Date与String的相互转化
- 算法分析与设计「一」枚举
- 深圳电子地图 深圳高清电子地图 来自谷歌电子地图 最高19级地图
- mysql typedefinition_深入浅出Mysql——基础篇
- Android Bitmap(位图)详解
- php下的ssm模式,编码风格:Mvc模式下SSM环境,代码分层管理
- mysql io 100_MySQL服务器 IO 100%的案例分析
- 【转】C#使用GDI+制作背景颜色淡入淡出效果的按钮
- 【JCC技术】JCC功能演示
- 全民学霸服务器在维护中需要多久,《全民学霸》学生系统详解,成就学霸之路...
- Fallback class must implement the interface annotated by @FeignClient
- pboot 将编码转换为实体html_java转换 HTML字符实体,java特殊字符转义字符串
- 函数编程之Function
- java迷你DVD管理器