使用spring 发送邮件详解

it2022-05-05  142

1.创建一个mail.properties:

mail.host=smtp.163.com  //邮箱格式,此处主要,你使用的什么邮箱就写什么邮箱的格式 mail.username=###########@163.com  //发送方的邮箱名字 mail.password=###########  //邮箱的授权码 mail.from=###########@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);            

 


最新回复(0)