业务背景及需求:
公司需要统一发送同类型的邮件给一批人时,比如发送员工个人薪资表分别至个人邮箱。
此类邮件标题,内容,发送人等基本一致,且需要带附件,而其附件是收件人的隐私性个人信息
若通过上传文件保存到数据库里然后在发邮件的方式,浪费空间和时间。将远程附件写到磁盘在发送则占据磁盘空间,性能不够优。
直接读取远程文件并发送,省掉上传附件的步骤。也不必占用磁盘空间。
/**
* 发送远程文件邮件
*
* @param to 收件人
* @param subject 邮件主题
* @param content 邮件内容
* @param smbFile 远程文件
*/
public void sendRemoteFile2Mail(Mail mail, MailTemplate mailTmpl, SmbFile smbFile) throws Exception {
MimeMessage message = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(message, true);
helper.setFrom(mailTmpl.getMessageSender());
helper.setTo(mail.getEmailAddress());
helper.setSubject(mailTmpl.getMessageSubject());
message.setContent(getMultipart(mailTmpl.getMessageBody(), smbFile));
if (null != mail.getMailCC() && !"".equals(mail.getMailCC())) {
help