maven依赖
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
1、controller
import org.apache.commons.io.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.mail.internet.MimeMessage;
import javax.validation.Valid;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@RestController
@RequestMapping("/api/v*/personal/mail")
public class MailController extends BaseController {
@Autowired
private MailService mailService;
@Value("${pm.mail.attachment.temp}")
private String prefix;
/**
* 发送邮件
*/
@PostMapping("/send")
public Result send(@Valid MailProtocol.Send.Input input, List<MultipartFile> file, BindingResult bindingResult) {
validateArgs(bindingResult);
List<String> filesPath = getFilesPath(file);
mailService.sendMail(StringUtil.join(input.getTo(), ","), StringUtil.join(input.getCc(), ","),
StringUtil.join(input.getBcc(), ","), input.getSubject(), input.getContent(), filesPath);
return succeed();
}
/**
* 暂存文件
*
* @param attachments 附件
* @return 附件路径
*/
private List<String> getFilesPath(List<MultipartFile> attachments) {
if (isEmpty(attachments)) {
return new Arra