简单的邮件发送

发表时间:2017-07-11 17:05:57 浏览量( 28 ) 留言数( 0 )

学习目标:

1、了解Java的历史

2、为什么要学习Java语言

3、端正学习态度


学习过程:

今天我们使用Spring整合两个比较有意思的技术:发送邮件和定时器。先讲解发送邮件。现在很多应用程序都需要发送邮件的功能,比如每个一段时间我们就会受到一些广告邮件,或者我们修改密码的时候经常也会受到一份确认邮件。虽然以前我们已经学习过如何使用原始的javaMail发送邮件了,功能实现比较简单,但是代码量已经不少了。使用Spring发送电子邮件可以使得我们工作量更加轻松。

Spring封装了一个简单独立的接口MailSender,JavaMailSender接口是MailSender的字接口,包含了邮件大大部分的特性,比如发送MIME邮件,内嵌图片,带附件的邮件等等。当然JavaMailSender只是一个接口,在Spring容器中定义组件时,我们需要它的实现类JavaMailSenderImpl。

一、新建一个web项目

我们还是先新建一个项目,然后把相关的包先导入,这里我们还是先使用MyEclipse帮助我们导入相关的包,这样还是比较容易的。

这里需要注意的是除了导入我们昨天的包之外,把下面这个也勾上

然后我们还需要把Struts2整合进来,这里我们昨天已经讲过了,大家可以自己实现一下。我们通过页面一个超链接进入Action,由Action调用邮件组件,发送邮件。

二、定义邮件组件

这个步骤比较简单我们只需要把参考下面的代码就可以了。具体的讲解大家可以参考之前讲过的使用原始的JavaMail发送邮件那一节课。其实和数据库连接差不多,就是连接信息比较复杂而已,我们还是使用QQ邮箱作为例子,你改为使用你自己的邮件就可以了,记得要在邮件管理界面中勾选支持POP3/SMTP的功能,修改成自己的邮件就可以了。代码如下:

<!-- 邮件发送者的配置 -->
<bean name="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
    <property name="username" value="598610582@qq.com"></property>
    <property name="password" value="liu123456"></property>
    <property name="port" value="465"></property>
    <property name="defaultEncoding" value="utf-8"></property>
    <property name="host" value="smtp.qq.com"></property>
    <property name="javaMailProperties">
        <props>
            <prop key="mail.debug">false</prop>
            <prop key="mail.smtp.auth">true</prop>
            <!-- 采用ssl 加密方式 -->
            <prop key="mail.smtp.starttls.enable">true</prop>
            <prop key="mail.smtp.socketFactory.class">
                javax.net.ssl.SSLSocketFactory
            </prop>
        </props>
    </property>
</bean>

三、在Action发送邮件

定义一个MailAction,实现代码如下;

  public class EmailAction extends ActionSupport{
	
	private JavaMailSender mailSender;
	
	public String send() {
		//发送邮件
		
		//1、发送简单邮件
		SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
		simpleMailMessage.setFrom("598610582@qq.com");
		
		simpleMailMessage.setTo("1905678733@qq.com");
		
		simpleMailMessage.setSubject("邮件标题");
		simpleMailMessage.setText("<b>邮件内容</b>");
		
		//2、发送
		mailSender.send(simpleMailMessage);
		
		
		
		System.out.println("发送成功");
		
		return SUCCESS;
	}

	public void setMailSender(JavaMailSender mailSender) {
		this.mailSender = mailSender;
	}
	
	

}

先在spring容器中配置这个Action组件,代码如下:

<bean name="emailAction" class="com.action.EmailAction">
    <property name="mailSender" ref="mailSender"></property>
</bean>

在struts2的配置文件中定义这个Action,代码如下:

<action name="send" class="emailAction" method="send">
          <result>/index.jsp</result>
</action>

     在页面上定义一个超链接,指向这个action,然后部署启动项目,查看是否能发送成功。