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

最近一直在做邮箱校验用户 信息的问题 , 项目使用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="[email protected]" />
        <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="[email protected]" />
    </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("邮件校验码错误");
                    }

猜你喜欢

转载自blog.csdn.net/cyadyx/article/details/73992143