spring整合mail配置学习总结

本文主要介绍了如何在Spring中配置和使用Mail服务,包括添加mail依赖、配置Spring的mail属性,详细讲解了邮件工具类的编写、业务逻辑代码实现以及Action处理流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mail依赖

<dependency>
	<groupId>javax.mail</groupId>
	<artifactId>mail</artifactId>
	<version>1.4.4</version>
</dependency>

spring配置

<?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="protocol" value="smtp" />
		<!-- 服务器 -->
		<property name="host" value="smtp.163.com" />
		<!-- 端口 -->
		<property name="port" value="465" />
		<!-- 登录用户名 -->
		<property name="username" value="邮箱名@163.com" />
		<!-- 密码 -->
		<property name="password" value="密码" />
		<!-- mail的配置 -->
        <property name="javaMailProperties">
            <props>
            	<!-- 验证:用户名username 与发件是否一致 -->
                <prop key="mail.smtp.auth">true</prop>
                <!-- 传输层的加密 -->
                <prop key="mail.smtp.ssl.enable">true</prop>
			</props>
		</property>
	</bean>
	<!-- Mail 工具类 -->
	<bean id="mailUtil" class="pdsu.xps.erp.util.MailUtil">
		<property name="javaMailSender" ref="mailSender"></property>
		<property name="fromAddress" value="邮箱名@163.com"></property>
	</bean>
</beans>

代码实现

邮件工具类

/**
 * 邮件工具类
 * @author Administrator
 */
public class MailUtil {
	// 邮件发送者
	private JavaMailSender javaMailSender;
	// 发送人
	private String fromAddress;

	public void setJavaMailSender(JavaMailSender javaMailSender) {
		this.javaMailSender = javaMailSender;
	}

	public void setFromAddress(String fromAddress) {
		this.fromAddress = fromAddress;
	}

	/**
	 * 	发送邮件 
	 * @param toAddress 邮件接收者,多者用逗号分隔
	 * @param subject 主题
	 * @param text 邮件正文(内容)
	 * @throws MessagingException
	 */
	public void sendMail(String toAddress, String subject, String text) throws MessagingException {
		// 创建邮件
		MimeMessage mime = javaMailSender.createMimeMessage();
		// 邮件包装工具
		MimeMessageHelper helper = new MimeMessageHelper(mime);
		// 主题
		helper.setSubject(subject);
		// 发件人
		helper.setFrom(fromAddress);
		// 收件人
		helper.setTo(toAddress);
		// 邮件正文
		helper.setText(text);
		// 发送邮件
		javaMailSender.send(mime);
	}
}

业务逻辑代码

public void sendStoreAlertMail() throws MessagingException {
		// 查看是否存在需要预警的商品
		List<StoreAlert> storeAlertList = storedetailDao.getStoreAlertList();
		int cnt = storeAlertList == null ? 0 : storeAlertList.size();
		if (cnt > 0) {
			try {
				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				// 发送邮件
				/*
				subject = 库存预警_时间:[time] => 库存预警_时间:2017-05-04 10:42:45
				text=尊敬的客户,有[count]种商品已经预警了,请登陆系统查看
				*/
				mailUtil.sendMail(toAddress, subject.replace("[time]", sdf.format(new Date())),
						text.replace("[count]", String.valueOf(cnt)));
			} catch (MessagingException e) {
				e.printStackTrace();
				throw new ErpException("发送预警邮件失败");
			}
		} else {
			throw new ErpException("没有需要预警的商品");
		}
	}

action处理

public void sendAlertMail() {
	try {
		storedetailBiz.sendStoreAlertMail();
		// 将提示信息写给前端
		ajaxReturn(true, "发送成功");
	} catch (MessagingException e) {
		ajaxReturn(false, "无法发送邮件");
		e.printStackTrace();
	} catch (ErpException e) {
		ajaxReturn(false, e.getMessage());
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值