You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 10:57:47