自动发送邮件教程 (最好的邮件群发平台)

大量群发邮件技巧,电子邮件群发技巧和方法

项目配置

引入依赖:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

配置邮箱信息:

spring:
  mail:
    host: smtp.sina.com           # 新浪邮箱
    username: xxx@sina.com				# 发件人邮箱地址
    password: xxxxxxxxxxxx    # 授权码
    protocol: smtp              # SMTP 协议
    default-encoding: UTF-8     # 编码格式
    properties:
      mail:
        debug: true               # 开启Debug模式,打印发送邮件的日志信息
        smtp:
          auth: true
          socketFactory:
            class: javax.net.ssl.SSLSocketFactory
          ssl:
            enable: true
            checkServerIdentity:
              enable: true
          starttls:
            enable: true

发送纯文本邮件

@Value("${spring.mail.username}")
 private String username;

@Test
void sendTextEmail(@Autowired JavaMailSender mailSender) {
  SimpleMailMessage message = new SimpleMailMessage();

  message.setFrom(username);
  message.setTo("ijunfv@gmail.com");
  message.setSubject("纯文本内容的邮件");
  message.setText("<h2>跳转至Youtube</h2><a href=\"https://www.youtube.com\">https://www.youtube.com</a>");

  mailSender.send(message);
  log.info("邮件发送成功");
}

核心:使用SimpleMailMessage类

发送HTML格式的邮件

@Test
void sendHtmlEmail(@Autowired JavaMailSender mailSender) throws MessagingException {

  MimeMessage mimeMessage = mailSender.createMimeMessage();

  MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, false);
  messageHelper.setFrom(username);
  messageHelper.setTo("ijunfv@gmail.com");
  messageHelper.setSubject("HTML格式的邮件");
  messageHelper.setText("<h2>跳转至Youtube</h2><a href=\"https://www.youtube.com\">https://www.youtube.com</a>", true);

  mailSender.send(mimeMessage);
  log.info("邮件发送成功");
}

核心:使用MimeMessageHelper类,setText方法第二个参数必须为True,否则发送的是纯文本。

发送包含附件的邮件

@Test
void send(@Autowired JavaMailSender mailSender) throws MessagingException {
  MimeMessage mimeMessage = mailSender.createMimeMessage();

  MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
  messageHelper.setFrom(username);
  messageHelper.setTo("ijunfv@gmail.com");
  messageHelper.setSubject("包含附件的邮件");
  messageHelper.setText("<h2>跳转至Youtube</h2><a href=\"https://www.youtube.com\">https://www.youtube.com</a>", true);

  messageHelper.addAttachment("6.png", new File("D:\\Images\\logo_200x200 (6).png"));
  messageHelper.addAttachment("12.png", new File("D:\\Images\\logo_200x200 (12).png"));

  mailSender.send(mimeMessage);
  log.info("邮件发送成功");
}

核心:

  1. 创建MimeMessageHelper对象时,第二个参数必须为true,否则不能发送包含附件的邮件
  2. 使用addAttachment方法添加附件

发送内嵌附件的邮件

@Test
void sendInlineResourceEmail(@Autowired JavaMailSender mailSender) throws MessagingException {

  MimeMessage mimeMessage = mailSender.createMimeMessage();

  MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);
  messageHelper.setFrom(username);
  messageHelper.setTo("ijunfv@gmail.com");
  messageHelper.setSubject("包含附件的邮件");

  String rscId = "dhjsjd9889";
  messageHelper.setText("<h2>跳转至Youtube</h2><a href=\"https://www.youtube.com\"><img src='cid:"+rscId+"' /></a>", true);
  messageHelper.addInline(rscId, new File("D:\\Images\\logo_200x200 (6).png"));

  mailSender.send(mimeMessage);

  log.info("邮件发送成功");
}

核心:

  1. 创建具有唯一性的ID作为附件标识,比如rscId
  2. 使用addInline添加附件
  3. 在邮件内容中通过 cid:rscId 插入附件

小结

按邮件内容,可分为普通文本、HTML格式内容、添加附件、内嵌附件四种邮件。

上述已将完整代码列出,记得 一键三连^_^