在开发中经常有发送邮件的时候
创建发送邮件需要创建的实体类
/**
* 邮件信息
*/
@Data
@Builder
public static class Mail {
/**
* 发送人
*/
private List<String> to;
/**
* 抄送人
*/
private List<String> cc;
/**
* 标题
*/
private String subject;
/**
* 内容
*/
private String text;
/**
* 附件
*/
private List<Attachment> attachments;
public Mail addAndGet(Attachment attachment) {
if(CollectionUtils.isEmpty(attachments)) {
attachments = new ArrayList<>();
}
attachments.add(attachment);
return this;
}
}
/**
* 附件
*/
@Data
@Builder
public static class Attachment {
/**
* 名称
*/
private String name;
/**
* 文件
*/
private File file;
}
public static void send(Mail mail) {
List<Attachment> attachments = mail.getAttachments();
String subject = mail.getSubject();
String text = mail.getText();
List<String> cc = mail.getCc();
List<String> to = mail.getTo();
try {
JavaMailSenderImpl javaMailSender = SpringUtil.getBean(JavaMailSenderImpl.class);
System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
MimeMessage message = javaMailSender.createMimeMessage();
// MimeMessageHelper
MimeMessageHelper helper = new MimeMessageHelper(message, true,"utf-8");
helper.setSubject(subject);
helper.setFrom(Objects.requireNonNull(javaMailSender.getUsername()));
helper.setTo(to.toArray(new String[0]));
if(CollectionUtils.isNotEmpty(cc)) {
helper.setCc(cc.toArray(new String[0]));
}
helper.setSentDate(new Date());
helper.setText(text);
if(CollectionUtils.isNotEmpty(attachments)) {
for(Attachment attachment : attachments) {
String name = attachment.getName();
File file = attachment.getFile();
if(StringUtils.isBlank(name)) {
name = file.getName();
}
helper.addAttachment(name, file);
}
}
javaMailSender.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
邮件发送时遇到附件乱码问题
System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
评论区