SpringMVC 实现邮件发送功能
配置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" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx" xmlns:mvc="http://www.springframework.org/schema/mvc"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
	default-autowire="byName">
<!-- 实现邮件服务 -->
	<bean id="mimeMessage" class="javax.mail.internet.MimeMessage"
		factory-bean="javaMailSender" factory-method="createMimeMessage" />
<bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
		<property name="host" value="smtp.163.com" />
		<property name="username" value="hongliang_0510@163.com" /> //你的邮箱
		<property name="password" value="***********" />//邮箱密码
		<property name="javaMailProperties">
			<props>
				<prop key="mail.smtp.auth">true</prop>
				<prop key="mail.smtp.host">smtp.163.com</prop>
				<prop key="mail.smtp.timeout">25000</prop>
				<prop key="mail.smtp.port">25</prop>
				<prop key="mail.smtp.socketFactory.port">465</prop>
				<prop key="mail.smtp.socketFactory.fallback">false</prop>
				<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
			</props>
		</property>
	</bean>
<bean id="mailService" class="core.mail.service.impl.MailServiceImpl">
		<property name="mailSender" ref="javaMailSender" />
		<property name="mimeMessage" ref="mimeMessage" />
	</bean></beans>
--邮件Module实体类
public class MailModel {
	private String fromAddress;//发送人地址1个
	private String toAddresses;//接收人地址,可以为很多个,每个地址之间用";"分隔,比方说450065208@qq.com;lpf@sina.com
	private String subject;//邮件主题
	private String content;//邮件文本内容
	private String[] attachFileNames;//附件 
	public String getFromAddress() {
		return fromAddress;
	}
	public void setFromAddress(String fromAddress) {
		this.fromAddress = fromAddress;
	}
	public String getToAddresses() {
		return toAddresses;
	}
	public void setToAddresses(String toAddresses) {
		this.toAddresses = toAddresses;
	}
	public String getSubject() {
		return subject;
	}
	public void setSubject(String subject) {
		this.subject = subject;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
public void setAttachFileNames(String[] attachFileNames) {
		this.attachFileNames = attachFileNames;
	}
	public String[] getAttachFileNames() {
		return attachFileNames;
	}
}
--service 接口
public interface MailService {
public void sendAttachMail(MailModel mail);
}
--service实现类
@Service
public class MailServiceImpl implements MailService{
	@Resource
	private JavaMailSender mailSender;
	public void setMailSender(JavaMailSender mailSender) {
		this.mailSender = mailSender;
	}
	private MimeMessage mimeMessage;
	public void setMimeMessage(MimeMessage mimeMessage) {
		this.mimeMessage = mimeMessage;
	}
	private static Logger logger = Logger.getLogger(MailServiceImpl.class);
/**
	 * 发送html格式的,带附件的邮件
	 */
	@Override
	public void sendAttachMail(MailModel mail) {
try {
			MimeMessageHelper mailMessage = new MimeMessageHelper(
					this.mimeMessage, true, "UTF-8");
			mailMessage.setFrom(mail.getFromAddress());// 设置邮件消息的发送者
mailMessage.setSubject(mail.getSubject());// 设置邮件消息的主题
			mailMessage.setSentDate(new Date());// 设置邮件消息发送的时间
			mailMessage.setText(mail.getContent(), true); // 设置邮件正文,true表示以html的格式发送
String[] toAddresses = mail.getToAddresses().split(";");// 得到要发送的地址数组
			for (int i = 0; i < toAddresses.length; i++) {
				mailMessage.setTo(toAddresses[i]);
			/*	for (String fileName : mail.getAttachFileNames()) {
					mailMessage.addAttachment(fileName, new File(fileName));
				}*/
				// 发送邮件
				this.mailSender.send(this.mimeMessage);
				logger.info("send mail ok=" + toAddresses[i]);
			}
} catch (Exception e) {
			logger.error(e);
			e.printStackTrace();
		}
}
}
--controller中的发邮件的方法
@RequestMapping(value = "/sendEmail.do")
	@ResponseBody
	public AjaxUtil sendEmail(HttpServletRequest request) {
		String title = request.getParameter("title");
		String userName= request.getParameter("userName");
		String email = request.getParameter("email");
		String advice = request.getParameter("advice");
		MailModel mail = new MailModel();
		mail.setFromAddress("hongliang_0510@163.com");
		mail.setToAddresses("71006957@qq.com");
		mail.setSubject(title);
		StringBuffer sb = new StringBuffer();
		sb.append("姓名:"+userName+"<br/>");
		sb.append("邮箱:"+email+"<br/>");
		sb.append("建议:"+advice+"<br/>");
		mail.setContent(sb.toString());
		AjaxUtil ajax=new AjaxUtil();
		try{
			mailService.sendAttachMail(mail);
		}catch(Exception e){
			ajax = new AjaxUtil(e.getMessage());
		}
		return ajax;
	}
SpringMVC 实现邮件发送功能的更多相关文章
- SpringBoot 2.X从0到1实现邮件发送功能
		Spring中提供了JavaMailSender接口实现邮件发送功能,在SpringBoot2.X中也封装了发送邮件相关的Starter并且提供了自动化配置. 本文目录 一.添加对应的Starter二 ... 
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
		今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ... 
- 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
		在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ... 
- redmine邮件发送功能配置详解
		redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ... 
- .NET开发邮件发送功能
		.NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知 ... 
- shell邮件发送功能实现
		本文中以163邮箱为例,测试shell邮件发送功能.常见的工具有:mailx.sendmail.mutt等. 1.设置邮件客户端 (1)启用pop3.smtp服务,以支持第三方客户端支持 (2)设置授 ... 
- spring-boot-route(二十二)实现邮件发送功能
		在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看 ... 
- System.Net邮件发送功能踩过的坑
		System.Net邮件发送功能踩过的坑 目录 System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 2.邮件发送授权码与邮件密码 3.通过邮件密码来发送邮件 4.Wiresh ... 
- 结合ABP源码实现邮件发送功能
		1. 前言 2. 实现过程 1. 代码图(重) 2.具体实现 2.1 定义AppSettingNames及AppSettingProvider 2.2 EmailSenderConfiguration ... 
随机推荐
- Handler具体解释
			首先下载Android api 进行查阅 ,API下载地址:http://pan.baidu.com/s/1i33dTGT 以下的描写叙述假设那里错了,请大家吐槽,我也是第一次学习,共同进步 Hand ... 
- EasyUI基础入门之Pagination(分页)
			前言 对于一些企业级的应用来说(非站点),页面上最为基本的内容也就是表格和form了.对于类似于ERP这类系统来说数据记录比較大,前端表格展示的时候必需得实现分页功能了.恰巧EasyUI就提供了分页组 ... 
- 关于Android圆形图片的一种优化方案(可以显示网络图片)
			在Android App中,我们经常看到圆形头像图片,然后网上也有很多开源的控件.刚好这个项目用到了,也去找了一些开源的,发现并不完美,所以只好自己优化了,废话不多说,先上效果图: 下面是源码:本人能 ... 
- 【ZZ】快速學會開發Android App
			http://www.cc.ntu.edu.tw/chinese/epaper/0022/20120920_2209.html 作者:吳玉舒 / 臺灣大學計算機及資訊網路中心程式設計組幹事 智慧型手機 ... 
- linux用户权限
			Linux下passwd和shadow文件内容详解 一./etc/passwd/etc/passwd 文件是一个纯文本文件,每行采用了相同的格式: name:password:uid:gid:comm ... 
- PHP版根据经纬度和半径计算出经纬度的范围
			百度地图提供了范围搜索的功能,但是它使用的是百度自己的数据,但是有时候我们需要使用自己的数据,显示在地图上.比如给定两个参数:指定位置(某一处的经纬度lnglat)和搜索半径(r),搜索指定范围内的数 ... 
- Transact-SQL三值逻辑
			/*===========================<一>========================== 在SQL中逻辑表达式的值有三种: 1.TRUE 2.FALSE 3.U ... 
- Android SQLite 的简单实例
			1.前言: 今天再一次去蹭了一下某老师的android课,这一次讲的是Android的SQLite的使用,老师当场讲解了他自己做的例子. 回来之后,我春心萌动,不得不拿着参考资料再做了一个类似的例子, ... 
- 浅析vb.net与vb6的不同
			vb6.0与vb.net 都是微软公司推出的编程工具,而vb.net是在vb6的基础上发展而来的,其语法与VB6.0相似,但VB.net并不是VB6.0 的简单升级,而是增加了更多特性,其中重要的一点 ... 
- http://www.cnblogs.com/
			<?php $filename = $_GET['filename']; header("Content-type: application/octet-stream"); ... 
