首页 > 代码库 > 【Spring】JavaMailSender Spring自带的邮件推送功能实现
【Spring】JavaMailSender Spring自带的邮件推送功能实现
备注:JavaMailSender在spring-context-support.jar中
1.配置spring-mail.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"> <!-- spring mail begin ############################################## --> <bean id="configurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>/mail.properties</value> </list> </property> </bean> <bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" /> <bean id="MailSenderDemo" class="com.zlg.test.springmail.MailSenderDemo"></bean> <!-- spring mail demo end ############################################## --> <bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="${mail.host}"></property> <property name="port" value="${mail.port}"></property> <property name="username" value="${mail.username}"></property> <property name="password" value="${mail.password}"></property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> <prop key="mail.smtp.timeout">25000</prop> <prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop> <!-- 如果是网易邮箱, mail.smtp.starttls.enable 设置为 false--> <prop key="mail.smtp.starttls.enable">true</prop> </props> </property> </bean> </beans>
mail.smtp.socketFactory.class 加上该配置,避免出现认证错误
mail.properties
# qq mail server
#mail.protocol=smtp
#mail.port=465
#mail.host=smtp.exmail.qq.com
#mail.username=xxx@qq.com
#mail.password=
# 163 mail server
mail.protocol=smtp
mail.port=465
mail.host=smtp.163.com
mail.username=xxx@163.com
mail.password=
2.web.xml中加入bean配置
<servlet> <servlet-name>provider</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value> <!-- classpath:applicationContext.xml, --> <!-- classpath:applicationContext-servlet.xml, --> <!-- classpath:dubbo.xml, --> classpath:spring-mail.xml </param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>provider</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping>
3.pom.xml中加入jar包依赖
<!-- spring mail需要的jar包 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.2.6.RELEASE</version> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>
4.编写Java接口文件
package com.zlg.test.springmail; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; /** * @Title: MailSenderDemo.java * @Package: com.zlg.test.springmail * @Description: spring mail 测试 * @author: zlg * @date: 2017年6月20日 上午9:43:45 * @version: V1.0 */ public class MailSenderDemo { @Autowired private JavaMailSender mailSender; public void send(SimpleMailMessage mail) { mailSender.send(mail); } public JavaMailSender getMailSender(){ return this.mailSender; } }
5.添加测试类
package com.zlg.test.springmail; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; /** * @Title: SendTest.java * @Package: com.zlg.test.springmail * @Description: TODO * @author: zlg * @date: 2017年6月20日 上午10:03:36 * @version: V1.0 */ public class SendTest { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext( "spring-mail.xml"); MailSenderDemo sender = (MailSenderDemo) ac.getBean("MailSenderDemo"); /*SimpleMailMessage mail = new SimpleMailMessage(); mail.setTo("673376601@qq.com");// 收件人邮箱地址 mail.setFrom("zlg");// 收件人 mail.setSubject("SpringMailTest");// 主题 mail.setText("测试Spring自带邮件发送功能");// 正文 sender.send(mail);*/ JavaMailSender javaMailSender = sender.getMailSender(); MimeMessage mime = javaMailSender.createMimeMessage(); MimeMessageHelper helper; try { helper = new MimeMessageHelper(mime, true, "utf-8"); helper.setTo("dszlg@163.com");// 收件人邮箱地址 helper.setFrom("dszlg@163.com");// 收件人 helper.setSubject("SpringMailTest");// 主题 helper.setText("测试Spring自带邮件发送功能");// 正文 } catch (MessagingException me) { me.printStackTrace(); } javaMailSender.send(mime); } }
6.查看效果
【Spring】JavaMailSender Spring自带的邮件推送功能实现
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。