Spirng Mail的发送简单邮件

来源:互联网 发布:风行家园网络传销案 编辑:程序博客网 时间:2024/05/22 15:22


一、建立工程,结构如下:


二、导入jar包:

activation.jar、commons-logging.jar、mail.jar 、spring.jar


三、代码片段

1、mail.properties

# This properties file is used to configure mail settings in # /WEB-INF/applicationContext-mail.xml.mail.host=smtp.sina.commail.username=zhangbook10086@sina.commail.password=yourpasswordmail.from=zhangbook10086@sina.commail.to=zhangbook10087@sina.com


2、applicationContext-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"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"><!-- 加载mail.properties文件 --><bean id="configurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"><property name="locations"><list><value>classpath:mail.properties</value></list></property></bean><!-- 声明JavaMailSenderImpl对象 --><bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl"><property name="defaultEncoding" value="UTF-8" /><property name="host" value="${mail.host}" /><property name="username" value="${mail.username}" /><property name="password" value="${mail.password}" /><property name="javaMailProperties"><props><prop key="mail.smtp.auth">true</prop><!-- 设置认证开关 --><prop key="mail.debug">true</prop><!-- 启动调试开关 --></props></property></bean><!-- 声明SimpleMailMessage对象 --><bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage"><property name="from" value="${mail.from}" /><!-- 设置发送方 --><property name="to" value="${mail.to}" /><!-- 设置接收方 --><!-- 查看SimpleMailMessage源码还可以注入标题,内容等 --></bean></beans>


3、SpringSimpleMailTest.java

package com.demo.mail;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import org.springframework.mail.SimpleMailMessage;import org.springframework.mail.javamail.JavaMailSenderImpl;public class SpringSimpleMailTest {public static void main(String[] args) {ApplicationContext actx = new ClassPathXmlApplicationContext("applicationContext-mail.xml");JavaMailSenderImpl ms = (JavaMailSenderImpl) actx.getBean("mailSender");SimpleMailMessage smm = (SimpleMailMessage) actx.getBean("mailMessage");// 主题,内容smm.setSubject("测试mail");smm.setText("这个是一封测试mail,无需回复");ms.send(smm);}}


四、注意事项:

1、测试时请使用qq、sohu、sina邮箱,不要使用163、126邮箱,因为163、126邮箱禁止了smtp服务,即不能使用客户端发送邮件o(╯□╰)o

2、需要登录你的发送邮箱,在【设置】--【账户】中,选择【开启smtp/pop3服务】。

3、如果在运行时报错:java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream,

主要原因是 avax.mail和javax.activation这两个包已经在javaEE5当中属于基础包了,就是JDK中自带了已经,但是里面的方法与现在外面的mail.jar和activation.jar有一些出入,所以初学者在直接copy别人代码的时候往往会出现上面的错误。 解决方法是 

进到X:/Program Files/MyEclipse 6.5/myeclipse/eclipse/plugins/com.genuitec.eclipse.j2eedt.core_6.5.0.zmyeclipse650200806/data/libraryset/EE_5

这个路径里,可以看到javaee.jar,用rar把这个文件打开,然后进到javax文件夹里,删除mail.jar和activation.jar


0 0
原创粉丝点击