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

来源:互联网 发布:合金弹头 知乎 编辑:程序博客网 时间:2024/06/04 01:29

最近一直在做邮箱校验用户 信息的问题 , 项目使用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 调用方法

HttpServletRequest request=ServletActionContext.getRequest();Locale locale = request.getLocale();ByteArrayOutputStream imgStream = VerifyCodeUtil.GetInstance().GetVerifyImg(captchaId, locale, "jpeg");ReturnImg(imgStream);
(2)struts中GetVerifyImg方法实现
public ByteArrayOutputStream GetVerifyImg(String sessionId, Locale locale, String imgFormat) throws Exception{    ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();    //String captchaId = request.getSession().getId();    //request.getLocale()    BufferedImage challenge = imageCaptchaService.getImageChallengeForID(sessionId, locale);    ImageIO.write(challenge, imgFormat, jpegOutputStream);    //JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(jpegOutputStream);    //encoder.encode(challenge);    //byte[] captchaChallengeAsJpeg = jpegOutputStream.toByteArray();    return jpegOutputStream;}
(3)构造方法中创建图片

private VerifyCodeUtil(){    if (null == imageCaptchaService)    {        CaptchaEngine engineObj = new CaptchaEngine();        imageCaptchaService= new GenericManageableCaptchaService(engineObj, 300000, 20000);    }}
三 校验正确性

public Boolean DoVerify(String sessionId, String codeId) throws Exception{    return imageCaptchaService.validateResponseForID(sessionId, codeId);}


到此一个完整的邮件校正完成了

 
原创粉丝点击