前言
賬號註冊的時候通常會選擇短信註冊或者郵箱註冊,那麼如何在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就行了。