主要步骤:
一:设置邮件发送端开启smtp服务
二:在pom.xml 配置依赖javax.mail
三:在web项目添加依赖的包
四:新建配置文件spring-email.xml,在该配置文件中配置邮件发送对象需要使用的账号,授权码,协议,端口等信息
五:在web.xml中整合spring-email.xml,将该配置文件中的对象交给springmvc管理
六.新建测试类TestEmail发送简单的文字和html,运行tomcat,进行测试
具体如下:
一:设置邮件发送端开启smtp服务
首先进入自己的QQ邮箱,点击设置中,在点击账户,来至该页面底部,开启smtp服务,点击开启,再用手机发送“配置邮件客服端”到指定号码,然后点击我已发送,保存授权码
二:在pom.xml 配置依赖javax.mail
<!-- 邮件--> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
三:在web项目添加依赖的包
四:新建配置文件spring-email.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="smtp.qq.com"/> <property name="port" value="587"/> <property name="protocol" value="smtp"/> <property name="username" value="发送端qq的账号"/> <property name="password" value="相应的授权码"/> <property name="defaultEncoding" value="UTF-8"/> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> </props> </property> </bean> </beans>
五:在web.xml中整合spring-email.xml,将该配置文件中的对象交给springmvc管理
<servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <!--Spring MVC配置文件路径 --> <param-value>classpath*:spring/spring-mvc.xml, classpath:spring/spring-email.xml </param-value> </init-param> <!-- 启动动优先级,越小越早加载 --> <load-on-startup>1</load-on-startup> </servlet>
六.新建测试类TestEmail发送简单的文字和html,运行tomcat,进行测试
package com.ivy.email; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import javax.annotation.Resource; import javax.mail.internet.MimeMessage; /** * Created by Administrator on 2018/5/19. */ @Controller //声明为控制器 @RequestMapping(path = "/testemail") public class TestEmail { @Resource(name="mailSender") JavaMailSenderImpl mailSender; @RequestMapping(path = "/sendword") public void handle(){ SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setTo("qq目的地"); mailMessage.setFrom("qq发送端");//一定要写,501 mail from address must be same as authorization user的错误 mailMessage.setSubject("第一个文本文件"); mailMessage.setText("hi"); mailSender.send(mailMessage); } @RequestMapping(path = "/sendhtml" ) public void handle1(){ MimeMessage mimeMsg = mailSender.createMimeMessage(); try { String html = "<html><head>"+ "</head><body>"+ "<h1>Hello,this is first html!</h1>"+ "<span style='color:red;font-size:36px;'>hello</span>"+ "<img src='https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1526734280537&di=0f7ac79302207a66fe4db36162486167&imgtype=0&src=http%3A%2F%2Fimg5.duitang.com%2Fuploads%2Fitem%2F201510%2F07%2F20151007101227_jkevU.jpeg'>"+ "</body></html>"; MimeMessageHelper helper = new MimeMessageHelper(mimeMsg,true); helper.setTo("qq目的地"); helper.setFrom("qq发送端账号");//一定要写,501 mail from address must be same as authorization user的错误 helper.setSubject("你好"); helper.setText(html, true); mailSender.send(mimeMsg); }catch (Exception e){ } } }
在浏览器输入:http://localhost:8080/springmvc/testemail/sendword
查看接收端有没有收到一句话
在浏览器输入:http://localhost:8080/springmvc/testemail/sendhtml
查看接收端邮箱有没有收到一个邮件