Java mail发送相关问题

一、邮件附件变成bin格式

Java 发送邮件时,邮件附件变成.bin后缀的文件

如下图:

出现这个问题,博主查阅了其他博主的文章,大致是附件名称过长或附件名称携带中文

博主代码中采用的是中文加UUID的一个拼接。如下:

//生成随机的UUID
String uuid = IdWorker.get32UUID();
String file = "核价单" + uuid+ ".pdf"

博主翻看了MimeBodyPart类的源码,发现setFileName中有个getParameterList方法,继续跟进会发现他里面做了一层判断,如下图:

 意思大致就是长度大于60并且splitLongParameters、encodeParameters为true时,文件名就会被截取,然后在进行转码就会变成开头我们说的格式了,然后我们找一下splitLongParameters,其实在开头已经被定义为true

 解决方案:初始化时我们将这个值变为false,并缩短了附件名字

System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
System.getProperties().setProperty("mail.mime.charset", "UTF-8");

String randomAlphanumeric = RandomStringUtils.randomAlphanumeric(6);
String file = "核价单" + randomAlphanumeric + ".pdf";

二、项目部署阿里云服务器出现报错

报错如下:Got bad greeting from SMTP host: smtp.exmail.qq.com, port: 465, response: [EOF]. Failed messages: javax.mail.MessagingException: Got bad greeting from SMTP host: smtp.exmail.qq.com, port: 465, response: [EOF]

本地可以发送正常,上传阿里云服务器就是不可以,后来发现代码中没有配置ssl连接方式。

配置如下:

spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值