JAVA發送短信(SMS服務)和SpringBoot發送郵件實現

前言

賬號註冊的時候通常會選擇短信註冊或者郵箱註冊,那麼如何在JAVA當中實現短信的發送和郵件的發送呢?

SMS服務實現

發送短信通常都是接入第三方的SMS服務,例如:阿里雲SMS,百度雲SMS,七牛雲SMS等等。但是上面的都要錢,雖然不多。

不過騰訊雲註冊會送100條免費短信。所以作爲一名個人開發者直接使用騰訊雲的進行測試就可以了。實際開發的話,根據情況在進行選擇就可以。

阿里雲SMS接入指南:如何接入阿里雲短信服務 (完整指南)
百度雲SMS官方接入指南:簡單消息服務快速入門
騰訊雲SMS官方接入指南:官方文檔API

這種接入第三方SDK開發的,還是要好好的去看看官方文檔,根據官方文檔進行操作一般不會出問題!

發送郵件實現

重要事項:一定要開啓郵箱的SMTP服務!!!獲得對應的授權碼
重要事項:一定要開啓郵箱的SMTP服務!!!獲得對應的授權碼
重要事項:一定要開啓郵箱的SMTP服務!!!獲得對應的授權碼

以QQ郵箱爲例:在郵箱設置–賬戶–POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務 裏面開啓SMTP服務獲取授權碼。

普通Java項目發送郵件

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Properties;

/**
 * @author [email protected]
 * @date 2020/1/6 15:39
 * @apiNote //TODO
 */
public class SenderEmail {
    public static void main(String[] args) throws Exception {
        Properties properties = new Properties();
        // 連接協議
        properties.put("mail.transport.protocol", "smtp");
        // 主機名
        properties.put("mail.smtp.host", "smtp.qq.com");
        // 端口號
        properties.put("mail.smtp.port", 25);
        //開啓權限校驗
        properties.put("mail.smtp.auth", "true");
        
        
        // 得到回話對象
        Session session = Session.getInstance(properties);
        // 獲取郵件對象
        Message message = new MimeMessage(session);
        // 設置發件人郵箱地址
        message.setFrom(new InternetAddress("[email protected]"));
        // 設置收件人郵箱地址
        message.setRecipients(Message.RecipientType.TO, new InternetAddress[]{new InternetAddress("[email protected]")});
        // 設置郵件標題
        message.setSubject("xmqtest");
        // 設置郵件內容
        message.setText("郵件內容郵件內容郵件內容xmqtest");
        // 得到郵差對象
        Transport transport = session.getTransport();
        // 連接自己的郵箱賬戶
        transport.connect("[email protected]", "password");// 密碼爲QQ郵箱開通的stmp服務後得到的客戶端授權碼
        // 發送郵件
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
}

Springboot項目發送郵件

第一步:在springboot項目當中引入對應JAR

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

第二步:在application當中配置相關參數

# 設置是否需要認證,如果爲true,那麼用戶名和密碼就必須的,大多數平臺都要求必須
spring.mail.properties.mail.smtp.auth=true

# 設置用戶名
[email protected]

# 設置密碼,該處的密碼是QQ郵箱開啓SMTP的授權碼而非QQ密碼
spring.mail.password=password

# 設置郵箱主機
spring.mail.host=smtp.qq.com
spring.mail.port=25

第三步:編寫測試代碼

@SpringBootTest
class SmsEmailDemoApplicationTests {

    @Autowired
    JavaMailSenderImpl javaMailSender;

    @Test
    void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("[email protected]");
        message.setTo("[email protected]");
        message.setSubject("郵件主題");
        message.setText("郵件內容信息測試");
        javaMailSender.send(message);
    }
}

登陸[email protected]查看結果

在這裏插入圖片描述
總的來說代碼簡單。郵件方面如果要實現附件,圖片這類也有相關的API,調用對應的API就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章