1.创建一个mail.properties:
mail.host=smtp.163.com //邮箱格式
mail.username=18518964005@163.com //发送方的邮箱名字
mail.password=19951112qiu //邮箱的授权码
mail.from=18518964005@163.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
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-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<description>mail</description>
<context:property-placeholder location="classpath:mail.properties"/>
<bean id="mailMessage" class="org.springframework.mail.SimpleMailMessage">
<property name="from">
<value>${mail.from}</value>
</property>
<!-- 查看SimpleMailMessage源码还可以注入标题,内容等 -->
</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>
<!-- 设置发送延时 -->
<prop key="mail.smtp.timeout">0</prop>
</props>
</property>
</bean>
</beans>
3.写邮件发送代码(注意:发送邮件这个代码,要写到service层中,它属于业务层)
(基本写法都一样,直接复制过去就可以了,)
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext-mail.xml");
JavaMailSender sender = (JavaMailSender) ac.getBean("mailSender");
SimpleMailMessage message = (SimpleMailMessage) ac.getBean("mailMessage");
message.setTo(entity.getUserinfo().getEmail());//发给谁?
message.setCc("18518964005@163.com");//抄送给谁?
message.setSubject("员工邮箱验证");//主题
message.setText("亲爱的:"+entity.getUserinfo().getName()+",欢迎入职本公司,你的所属部门为:"+entity.getDept().getDeptName()+"你的职位为:"+entity.getUserinfo().getStation()+"你的员工登录密码为:"+SysConstant.DEFAULT_PASS);//邮件内容
sender.send(message);
3.1 在邮件中添加图片,附件的版本
//1.加载applicationContext-mail.xml文件
ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-mail.xml");
//2.获取发送器
JavaMailSender sender = (JavaMailSender) ac.getBean("mailSender");
//3.通过发送器,创建一个MimeMessage对象
MimeMessage message = sender.createMimeMessage(); //MimeMessage是支持图片和附件的
//4.使用MimeMessageHelper工具类来封装MimeMessage对象
MimeMessageHelper helper = new MimeMessageHelper(message,true);
//5.通过helper来设置相关的属性
helper.setFrom("itheima14@163.com");//发送邮箱
helper.setTo("3462420264@qq.com");//接收邮箱
helper.setSubject("测试带图片和邮件的邮件发送");
//5.设置图片 cid:代表内容的编号 content-id
helper.setText("<html><head></head><body><h1>hello!!spring image html mail</h1><a href=http://www.baidu.com>baidu</a><img src=cid:image /></body></html>",true);
//要给cid为image的这个编号,上传一个图片到邮件服务器
helper.addInline("image", new FileSystemResource(new File("E:\\02用例图.png")));
//6.带附件 第一个参数:代表这个附件在服务器上的文件名 第二个参数:代表文件资源在本地的位置
helper.addAttachment("javamail1_4_4.zip", new FileSystemResource(new File("E:\\javamail1_4_4.zip")));
//7.发送
sender.send(message);