Struts2+Spring发送邮件

Spring本身有mail支持,所以用spring发邮件其实是个挺简单的事,看看其jar包

<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mail</artifactId>
<version>4.2.6.RELEASE</version>
</dependency>

1:pom.xml

需要下载strut2 spring的核心包 mail.jar 以及activation.jar

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.zhao</groupId>
    <artifactId>Struts2_Spring</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <name>Struts2_Spring Maven Webapp</name>
    <url>http://maven.apache.org</url>
    <dependencies>
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
            <version>1.4.7</version>
        </dependency>
        <dependency>
            <groupId>javax.activation</groupId>
            <artifactId>activation</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-json-plugin</artifactId>
            <version>2.3.24</version>
        </dependency>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <!-- 只在编译时和测试时运行 -->
            <scope>provided</scope>
        </dependency>
        <!-- Struts2 -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-core</artifactId>
            <version>2.3.24</version>

        </dependency>
        <!-- convention-plugin插件,使用了这个插件之后,就可以采用注解的方式配置Action -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-convention-plugin</artifactId>
            <version>2.3.24</version>
        </dependency>
        <!-- struts2和spring整合 -->
        <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-spring-plugin</artifactId>
            <version>2.3.24</version>
        </dependency>
        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-mail</artifactId>
            <version>4.2.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-expression</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>4.0.4.RELEASE</version>
        </dependency>

    </dependencies>
    <build>
        <finalName>Struts2_Spring</finalName>
    </build>
</project>

2:spring_bean.xml

第一个bean是spring的支持,第二个bean是我自定义的Struts2 Action,然后依赖注入

    <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
        <property name="host" value="smtp.163.com" />
        <property name="username" value="username"/>
        <property name="password" value="password" />
    </bean>

    <bean id="sendMail" class="com.zhao.action.SendMailAction" scope="singleton">
        <property name="mailSender" ref="mailSender"></property>
    </bean>

3:struts.xml

页面流程也很简单,成功了就进入成功界面

<struts>
    <package name="default" extends="struts-default">
        <action name="send" class="com.zhao.action.SendMailAction">
            <result>success.jsp</result>
        </action>
        <action name="sendHtml" class="com.zhao.action.SendMailAction"
            method="sendHtml">
            <result>success.jsp</result>
        </action>
    </package>
</struts>

4:SendMailAction

我们通过依赖注入,得到了JavaMailSenderImpl的对象,然后通过这个对象进行邮件的发送。

package com.zhao.action;

import javax.mail.internet.MimeMessage;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper;

import com.opensymphony.xwork2.ActionSupport;

/**
 *
 * @author: zhao
 * @time: 2016年5月14日
 *
 * @description:Struts2 + Spring 发送邮件
 */
public class SendMailAction extends ActionSupport{
    private static final long serialVersionUID = 1L;
    private JavaMailSenderImpl     mailSender;
  //简单邮件发送
    @Override
    public String execute() throws Exception {
        SimpleMailMessage message=new SimpleMailMessage();

        message.setTo("[email protected]");
        message.setFrom("[email protected]");
        message.setSubject("练习");
        message.setText("这只是一个简单的练习");

        mailSender.send(message);
        return SUCCESS;
    }
  //html邮件发送
    public String sendHtml() throws Exception{
        MimeMessage message=mailSender.createMimeMessage();
        MimeMessageHelper messageHelper=new MimeMessageHelper(message);

        messageHelper.setTo("[email protected]");
        messageHelper.setFrom("[email protected]");
        messageHelper.setSubject("Html练习");
        messageHelper.setText("<html><head></head><body><h1>SUCCESS</h1></body></html>",true);

        mailSender.send(message);
        return SUCCESS;
    }

    public JavaMailSenderImpl getMailSender() {
        return mailSender;
    }
    public void setMailSender(JavaMailSenderImpl mailSender) {
        this.mailSender = mailSender;
    }
}

5:错误解决

正常来说上面的步骤就足够了,但是是我遇到了两个错误

550 User has no permission
 535 Error: authentication failed

550是说邮箱没有启用ssl/tls认证,所以我们直接发邮件肯定是失败的。

进入网易邮箱,开始相应服务

  

  

在这个过程会让你自己输入一个授权码,跟密码差不多,只不过你采用ssl方式登录时,需要输入授权码 ,而不是你的账号密码。这个授权码就是负责你在第三方登录的。

接下来我又遇到了535错误,这个错误的意思是验证不通过,密码不对。需要修改sprng_bean.xml中的账号密码,改成授权码,然后就好了。

好了,问题完美解决。

时间: 2024-10-10 20:39:38

Struts2+Spring发送邮件的相关文章

配置struts2+spring,springmvc

Struts2+Spring整合 一.spring负责注入,struts2负责它自己的工作.这样不是很符合spring作为ioc容器的全部功能,不推荐. 二.spring负责全部bean和struts2的action的生成.作为ioc容易的最大共用. 所需要jar包 配置web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/

Struts2 + Spring 学习(一)搭建struts开发环境

·为Web应用增加Struts2支持 1. 登陆struts2官网下载struts2的最新版,本文所用的是Struts 2.3.16.2 我们所下载的压缩包内内容应给如下 其中,apps包含了struts2的实例应用,docs包含了struts2的相关文档,lib包含了Struts2框架的核心类库以及struts2的第三方插件类库,src包含了struc包含了struts2框架的全部源码. 2. 在Eclipse新建Web工程,将是所用到的类库放到WEB-INF/路径下 3. 编辑Web应用的w

Struts2框架07 Struts2 + Spring + Mybatis 整合

1 导包 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 2 <m

SSH(Struts2+Spring+Hibernate)框架搭建流程&lt;注解的方式创建Bean&gt;

此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE

Struts2+Spring+Hibernate 三大框架的合并集成

这次来看看Struts2+Spring+Hibernate三大框架的整合应用,主要是Spring和Hibernate框架的整合,因为前边已经将Strtus2+Spring整合过了基本一样.  首先看一下分工吧: Struts2做的MVC的流程框架,主要完成从客户端访问到选择action的过程,其中过滤器起到了Controller的作用,action属于model,而jsp则是view页面的展示. Spring主要利用Ioc的特长来管理各种对象:action,service,dao,数据访问源,H

Struts2+Spring+Ibatis集成合并

上一篇博客讲述了Struts2+Spring的集成合并,主要是利用了一个中间jar包,这篇博客在加上Ibatis持久层框架,三个框架进行合并.其中Struts2和Spring部分和前边的一样,主要是讲解Spring和Ibatis之间的合并,这里也涉及到Spring的AOP编程思想,声明式事务的使用. 一,看一下分工吧: Struts2:负责流程控制,主要针对的是从JSP页面到action类这一块的步骤. Spring:负责各个类,对象的创建,包括action,service,dao,数据连接对象

Struts2+Spring集成合并

前边单独总结了Struts2,Spring和Ibaits框架了,那么怎么结合使用呢?这次先来看一下Sturts2和Spring的集成合并.其实挺简单的,就是导入各自的jar包以及连接彼此的jar包,分好彼此的工作就可以了. 好看一下Struts2+Spring的集成方案!  Struts2和Spring集成有两种方案,是根据action的创建来划分的!  方案一,Struts2负责流程,Spring负责对象的创建:Action由Struts2框架负责创建:Service由Spring框架负责创建

基于注解的struts2+spring+hibernate集成

applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.spri

Struts2,Spring,Hibernate框架的优缺点

Struts2,Spring,Hibernate框架的优缺点 Struts2框架(MVC框架)的优点如下: 1)  实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现:        2)  丰富的标签库,大大提高了开发的效率:        3) Struts2提供丰富的拦截器实现        3) 通过配置文件,就可以掌握整个系统各个部分之间的关系:        4) 异常处理机制,只需在配置文件中配置异常的映射,即可对异常做相应的处理: Spring框架的优点如下: 1)