SpringBoot学习日志之发送邮件和SMS短信
前言
账号注册的时候通常会选择短信注册或者邮箱注册,那么如何在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就行了。
「其他文章」
- 【年终总结】2021 年 HJLJY 的摸鱼大事件
- 从零开始搭建一个VUE3.0项目之路由跳转和拦截(二)
- 尽管冬天比较冷,还是要出去逛一逛
- 从零开始搭建一个VUE3.0项目之基础搭建(一)
- 记录——IDEA如何打普通JAR包
- Spring Cloud Gateway 2020.x版本无法注入Feign服务和RestTemplate的问题
- springboot整合quartz实现定时任务的动态修改,启动,暂停等操作
- Nginx学习日志(二)通过反向代理将不同域名映射到不同的端口
- Nginx学习日志(三)配置SSL证书(网站由http转成https)
- Springboot启动后执行方法的四种方式
- Nginx学习日志(一)简单入门
- 十月再见,十一你好
- Springboot之Security整合注意问题
- 裸职之后面试感悟与收获
- Nginx学习日志(五)多个server_name匹配以及default_server的问题
- SpringBoot学习日志之发送邮件和SMS短信
- Java根据Pdf模板生成新的模板
- springboot之线程池ThreadPoolTaskExecutor以及@Async异步注解
- Vue3.0开发之整合vue-admin-template模板
- Docker容器无法链接宿主机上的Mysql数据库