web邮件校验:Spring+Javamail+Spring SMTP Mail+Maven

本文介绍如何使用SpringMail进行邮箱验证,包括配置邮件发送环境、生成校验码并发送邮件、客户端接收并验证校验码的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近一直在做邮箱校验用户 信息的问题 , 项目使用SSH框架 利用MVC思想:

先介绍一下采用spring mail的好处吧,Spring 提供了一个发送电子邮件的高级抽象层,它向用户屏蔽了底层邮件系统的一些细节,同时负责低层次的代表客户端的资源处理。所以用 Spring 来发送 email 会省事很多和让发邮件变的简单许多,可以让我们更专注邮件内容本身而不必理会底层的具体实现。Spring邮件抽象层的主要包为org.springframework.mail。它包括了发送电子邮件的主要接口MailSender(实现类为org.springframework.mail.javamail.JavaMailSenderImpl,下面会用到改实现类)和封装了简单邮件属性的值对象SimpleMailMessage。

下面会具体介绍spring mail实现过程:

一  导入相关的依赖

<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.4</version>
</dependency>

二 获取校验码信息

(1) 控制器strusts 调用方法

 <bean id="sendMailAction" class="com.xunwei.sbms.controller.MailAction" scope="request">
            <property name="mailSend" ref="mailUtil"></property>
 </bean>

(2) 邮件发生器

 <bean id="mailUtil" class="com.xunwei.sbms.service.impl.MailService">
        <property name="mailSender" ref="mailSender"></property>
        <property name="simpleMailMessage" ref="simpleMailMessage"></property>
    </bean>
    <!-- 邮件发送器   -->
    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.sina.cn" />
        <property name="username" value="1234@sina.cn" />
        <property name="password" value="123" />
        <property name="defaultEncoding" value="UTF-8"></property>
        <property name="javaMailProperties">
            <props>
                <prop key="mail.smtp.auth">true</prop>
                <prop key="mail.smtp.timeout">25000</prop>
                <prop key="mail.smtp.port">25</prop>
            </props>
        </property>
    </bean>

(3)设置发件人

<bean id="simpleMailMessage" class="org.springframework.mail.SimpleMailMessage">
        <!-- 发件人email -->
        <property name="from" value="1234@sina.cn" />
    </bean>

三 邮件发送类

 String mail = request.getParameter("sendMail");
                    StringBuffer randomCode = getExchangeCode();
                    String content = "尊敬的" + mail + "您好\n" + "您的验证码为:" + randomCode + "\n" + "请及时拷贝使用!";
                    session.setAttribute("verifyMail", randomCode);
                    try
                    {
                        mailSend.send(mail, "密码重置邮件--迅微科技", content);
                        ret.setCode(0);
                        ret.setMessage("邮件发送成功");
                    } catch (Exception e)
                    {
                        ret.setCode(-1);
                        ret.setMessage("邮件发送失败");
                    }

4 校验

 String mail = request.getParameter("sendMail");
                    String exponent_privateKey = session.getAttribute("exponent_privateKey").toString();
                    String modulus_privateKey = session.getAttribute("modulus_privateKey").toString();
                    String verify = RsaUtil.decryptByExpAndModOfPrivateKey(mail, exponent_privateKey, modulus_privateKey);
                    String verifyMail = session.getAttribute("verifyMail").toString();
                    if (verify.equals(verifyMail))
                    {
                        ret.setCode(0);
                        ret.setMessage("邮件校验码正确");
                    } else
                    {
                        ret.setCode(-1);
                        ret.setMessage("邮件校验码错误");
                    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值