侧边栏壁纸
博主头像
gale-blog博主等级

少年一贯快马扬帆,道阻且长不转弯,要盛大,要绚烂,要哗然,要用理想的泰坦尼克号去撞现实冰川,要当烧赤壁的风,而非借箭草船,要为了一片海,就肯翻万山

  • 累计撰写 39 篇文章
  • 累计创建 5 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

java发送邮件操作

二月在这里
2024-01-27 / 0 评论 / 0 点赞 / 37 阅读 / 2804 字

在开发中经常有发送邮件的时候

创建发送邮件需要创建的实体类

 /**
     * 邮件信息
     */
    @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();
        }
    }
  1. 邮件发送时遇到附件乱码问题

System.getProperties().setProperty("mail.mime.splitlongparameters", "false");

0

评论区