牛客社区论坛项目(二)

本文介绍了使用SpringBoot实现注册登录功能,包括邮件发送、验证码存储优化、登录用户信息的Redis缓存以及拦截器的使用。邮件发送通过SMTP配置和JavaMailSender实现,登录验证码考虑从Session移到Redis以解决分布式问题。此外,文章还讨论了前端与后端数据验证、常量定义、配置注入的@Value注解以及拦截器与过滤器的区别。
摘要由CSDN通过智能技术生成

注册登录

1. 发送邮件
在自己邮箱开启SMTP服务,pom.xml中引入依赖

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

邮箱参数配置
spring 相关配置
spring:
#发送者邮箱相关配置
mail:
# SMTP服务器域名
host: smtp.163.com
# 编码集
default-encoding: UTF-8
# 邮箱用户名
username: csp******@163.com
# 授权码(注意不是邮箱密码!)
password: WDS*******XCQA
# 协议:smtps
protocol: smtps
# 详细配置
properties:
mail:
smtp:
# 设置是否需要认证,如果为true,那么用户名和密码就必须的,
# 如果设置false,可以不设置用户名和密码
# (前提要知道对接的平台是否支持无密码进行访问的)
auth: true
# STARTTLS[1] 是对纯文本通信协议的扩展。
# 它提供一种方式将纯文本连接升级为加密连接(TLS或SSL)
# 而不是另外使用一个端口作加密通信。
starttls:
enable: true
required: true
邮件发送工具类 JavaMailSender createMimeMessage,MimeMessageHelper,setTo,setFrom,setSubject,setText,mailSender.send(helper.getMimeMessage)

@Component
public class MailClient {
   

    private static final Logger logger = LoggerFactory.getLogger(MailClient.class);

    @Autowired
    private JavaMailSender mailSender;

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

    /**
     * 发送邮件
     * @param to 收件人
     * @param subject 邮件主题
     * @param content 邮件内容
     */
    public void sendMail(String to,String subject,String content){
   

        try {
   
            MimeMessage message = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(message);

            helper.setFrom(from);// 发送者
            helper.setTo(to);// 接收者
            helper.setSubject(subject);// 邮件主题
            helper.setText(content,true);// 邮件内容,第二个参数true表示支持html格式

            mailSender.send(helper.getMimeMessage());
        } catch (MessagingException e) {
   
            logger.error("发送邮件失败: " + e.getMessage());
        }
    }
}

测试发送

@Autowired
private MailClient mailClient;

@Test
void test02(){
   
    mailClient.sendMail("11xxxxxxx@qq.com","TEST","测试邮件发送!");
}

使用Thymleaf模板引擎发送html格式邮件

	// 激活邮件发送
    Context context = new Context();// org.thymeleaf.context.Context 包下
    context.setVariable("email", user.getEmail());
    // http://csp1999.natapp1.cc/community/activation/用户id/激活码
    String url = path + contextPath + "/activation/" + user.getId() + "/" + user.getActivatio
    context.setVariable("url", url
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值