Spring JavaMail发送附件在Gmail下载丢失扩展名求助
解决Gmail下载Spring发送的邮件附件丢失扩展名问题
我一眼就看出问题所在啦——你调用addAttachment方法的时候,只给了附件显示名"name",完全没带文件扩展名!
Gmail虽然能通过文件内容识别出这是Excel文件,但下载附件时会严格使用你指定的这个显示名称,所以才会出现“显示是Excel,但下载后变成无后缀的file文件”的情况。
给你两个简单的修改方案:
方案一:直接使用文件本身的带扩展名名称
既然你创建文件时已经指定了finaleName.xls,直接用file.getName()就能拿到带扩展名的文件名,传给addAttachment就行:
message.addAttachment(file.getName(), file);
这样附件在Gmail里显示的名称就是finaleName.xls,下载后也会保留.xls扩展名。
方案二:自定义显示名称但手动添加扩展名
如果你想给附件改个更友好的显示名,记得手动加上对应的扩展名,比如:
message.addAttachment("我的报表.xls", file);
这样既自定义了名称,又不会丢失扩展名。
额外提醒
- 确认你的
file对象对应的确实是合法的.xls文件,避免内容和扩展名不匹配导致的识别问题 - 如果是临时文件,要确保
file.getName()返回的是带完整扩展名的名称(你创建的outputFl是符合要求的)
内容的提问来源于stack exchange,提问作者var a
相关产品推荐
相关产品推荐

