1. 程式人生 > 程式設計 >SpringBoot整合JavaMail通過阿里雲企業郵箱傳送郵件的實現

SpringBoot整合JavaMail通過阿里雲企業郵箱傳送郵件的實現

JavaMail是Java開發中郵件處理的開源類庫,支援常用協議如:SMTP、POP3、IMAP

一、SpringBoot整合

1、需要在pom檔案中新增依賴spring-boot-starter-mail

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

構建專案,載入相關jar包

2、在application.yml中配置郵件傳送的相關資訊

spring:
  mail:
   host: smtp.mxhichina.com   #阿里雲傳送伺服器地址
   port: 25           #埠號
   username: [email protected]    #傳送人地址 
   password: ENC(Grg2n2TYzgJv9zpwufsf37ndTe+M1cYk)  #密碼

3、編寫郵件傳送工具類MailUtil

MailUtil.java

/**
 * @author chenzan
 * @version V1.0
 * @description 郵件傳送
 */

@Component
public class MailUtil {
  @Autowired
  JavaMailSendermailSender;
  @Autowired
  MailPropertiesmailProperties;
  /**
  * 傳送郵件測試方法
  */
  public void sendMail(MailBean mailBean) {
    SimpleMailMessage mimeMessage =new SimpleMailMessage();
    mimeMessage.setFrom(mailProperties.getUsername());
    mimeMessage.setTo(mailBean.getToAccount());
    mimeMessage.setSubject(mailBean.getSubject());
    mimeMessage.setText(mailBean.getContent());
    mailSender.send(mimeMessage);
  }

  /**
  * 傳送郵件-附件郵件
  * @param boMailBean
  */
  public boolean sendMailAttachment(MailBean mailBean) {
 try {
  MimeMessage mimeMessage =mailSender.createMimeMessage();
      MimeMessageHelper helper =new MimeMessageHelper(mimeMessage,true);
      helper.setFrom(mailProperties.getUsername());
      helper.setTo(boMailBean.getToAccount());
      helper.setSubject(mailBean.getSubject());
      helper.setText(mailBean.getContent(),true);
      // 增加附件名稱和附件
      helper.addAttachment(MimeUtility.encodeWord(boMailBean.getAttachmentFileName(),"utf-8","B"),mailBean.getAttachmentFile());
      mailSender.send(mimeMessage);
  return true;
    }catch (MessagingException e) {
  e.printStackTrace();
  return false;
    }
}

MailBean.java

/**
 * @author chenzan
 * @version V1.0
 */
@Data
public class MailBean {

private Stringsubject;
  private String content;
  private String toAccount;
  private File attachmentFile;
  private String attachmentFileName;
}

4.傳送

String email = "[email protected]";
String content="測試內容";
String subject = "測試主題";
MailBean mailBean =new MailBean ();
mailBean .setToAccount(email);
boMailBean.setSubject(subject );
boMailBean.setContent(content);
boolean resultSend =mailUtil.sendMailAttachment(boMailBean);

二、檢視阿里雲郵箱設定

支援SMTP/POP3/IMAP功能,輕鬆通過客戶端軟體(outlook、foxmail等)收發郵件。 詳細設定 點此檢視

三、SpringBoot中集成了jasypt在一定程度上保證密碼的安全

1、新增依賴

<properties>
  <jasypt.version>1.9</jasypt.version>
</properties>
<dependency>
  <groupId>com.github.ulisesbocchio</groupId>
  <artifactId>jasypt-spring-boot-starter</artifactId>
  <version>${jasypt.version}</version>
</dependency>

2、在application.yml中配置加密金鑰

jasypt:
 encryptor:
 password: XXXXXXX

3、生成密碼對應的密文

@RunWith(SpringRunner.class)
@SpringBootTest
public class EncryptTests {
 @Autowired
  StringEncryptor stringEncryptor;

  @Test
  public void encryptPwd() {
    String result = stringEncryptor.encrypt("XXXX");
    System.out.println(result);
  }
}

4、密文替換

在ENC()中新增對應密文

password: ENC(Grg2n2TYzgJv9zpwufsf37ndTe+M1cYk)  #密碼

到此這篇關於SpringBoot整合JavaMail通過阿里雲企業郵箱傳送郵件的實現的文章就介紹到這了,更多相關SpringBoot JavaMail傳送郵件內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!