import cn.hutool.core.util.ObjectUtil;
import com.wjj.application.dto.email.AttachmentDTO;
import com.wjj.application.dto.email.SendMailDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.UrlResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
@Slf4j
@Component
public class MyMailUtil {
@Value("${spring.mail.username}")
private String MAIL_SENDER;
@Autowired
private JavaMailSender javaMailSender;
public void sendSimpleMail(SendMailDTO sendMailDTO) {
SimpleMailMessage mailMessage = new SimpleMailMessage();
mailMessage.setFrom(MAIL_SENDER);
mailMessage.setTo(sendMailDTO.getRecipient());
mailMessage.setSubject(sendMailDTO.getSubject());
mailMessage.setText(sendMailDTO.getContent());
if (ObjectUtil.isNotEmpty(sendMailDTO.getCcList())) {
mailMessage.setCc(sendMailDTO.getCcList().toArray(new String[0]));
}
javaMailSender.send(mailMessage);
}
public void sendMimeMail(SendMailDTO sendMailDTO) throws MalformedURLException, MessagingException, UnsupportedEncodingException {
MimeMessage mimeMailMessage = null;
mimeMailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage, true);
mimeMessageHelper.setFrom(MAIL_SENDER,sendMailDTO.getFrom());
mimeMessageHelper.setTo(sendMailDTO.getRecipient());
mimeMessageHelper.setSubject(sendMailDTO.getSubject());
mimeMessageHelper.setText(sendMailDTO.getContent(), sendMailDTO.getIsHtml());
if (ObjectUtil.isNotEmpty(sendMailDTO.getCcList())) {
mimeMessageHelper.setCc(sendMailDTO.getCcList().toArray(new String[0]));
}
if (ObjectUtil.isNotEmpty(sendMailDTO.getAttachmentDTOList())) {
for (AttachmentDTO attachmentDTO : sendMailDTO.getAttachmentDTOList()) {
URL url = new URL(attachmentDTO.getAttachmentUrl());
UrlResource urlResource = new UrlResource(url);
mimeMessageHelper.addAttachment(attachmentDTO.getAttachmentName(), urlResource);
}
}
javaMailSender.send(mimeMailMessage);
}
}
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>