Spirng Mail的发送简单邮件


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


二、导入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.com
mail.username=zhangbook10086@sina.com
mail.password=yourpassword
mail.from=zhangbook10086@sina.com
mail.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.xsd
							http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
							http://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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值