问题
场景一
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0df925508182bc1ace6ebc1b43ec0151.png)
场景二
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5c56a290fd6247f159a0fd4298cf0b14.png)
解决
properties.setProperty("mail.mime.splitlongparameters", "false");
String newFileName = MimeUtility.encodeWord(attachmentName,"utf-8","B");
完整源码
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import java.util.Properties;
@Component
public class EmailUtils {
private Logger logger = LoggerFactory.getLogger(getClass());
private JavaMailSenderImpl createMailSender() {
JavaMailSenderImpl sender = new JavaMailSenderImpl();
sender.setHost("xxxx");
sender.setPort(465);
sender.setUsername("XXX");
sender.setPassword("XXX");
sender.setDefaultEncoding("Utf-8");
Properties p = new Properties();
p.setProperty("mail.smtp.timeout", "10000");
p.setProperty("mail.smtp.auth", "false");
p.setProperty("mail.smtp.ssl.enable", "true");
p.setProperty("mail.mime.splitlongparameters", "false");
sender.setJavaMailProperties(p);
return sender;
}
public boolean sendMail(String[] to, String[] cc, String subject, String content, String attachmentName, byte[] attachment) throws Exception {
JavaMailSenderImpl mailSender = createMailSender();
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
messageHelper.setFrom(mailSender.getUsername());
messageHelper.setTo(to);
if(cc != null && cc.length > 0){
messageHelper.setCc(cc);
}
messageHelper.setSubject(subject);
messageHelper.setText(content, true);
if (StringUtils.isNotBlank(attachmentName)) {
String newFileName = MimeUtility.encodeWord(attachmentName,"utf-8","B");
messageHelper.addAttachment(newFileName, new ByteArrayResource(attachment));
}
try {
mailSender.send(mimeMessage);
}catch (Exception e){
logger.error("send error", e);
return false;
}
return true;
}
}