步骤1:pom.xml添加依赖项
2 3 <dependency> 4 <groupId>javax.mail</groupId> 5 <artifactId>mailapi</artifactId> 6 <version>1.4.2</version> 7 </dependency> 8 9 <dependency> 10 <groupId>javax.mail</groupId> 11 <artifactId>mail</artifactId> 12 <version>1.4.2</version> 13 </dependency>
步骤2:封装一个工具类(参考下面的代码)
注:BaseBean里其实没啥东西,就一个protected Logger logger,方便子类可以直接使用,大家参考时,可根据需要去掉BeseBean继承
 1 package com.cnblogs.yjmyzz.utils;
  2 
  3 import com.cnblogs.yjmyzz.domain.BaseBean;
  4 import org.springframework.util.StringUtils;
  5 
  6 import java.util.Properties;
  7 
  8 import javax.mail.Message;
  9 import javax.mail.MessagingException;
 10 import javax.mail.Session;
 11 import javax.mail.Transport;
 12 import javax.mail.internet.InternetAddress;
 13 import javax.mail.internet.MimeMessage;
 14 import javax.mail.internet.MimeUtility;
 15 
 16 /**
 17  * 邮件发送工具类
 18  */
 19 public class MailUtil extends BaseBean {
 20 
 21     private MimeMessage message;
 22     private Session session;
 23     private Transport transport;
 24     private String smtpHost = "";
 25     private int smtpPort = 25;
 26     private String senderUserName = "";
 27     private String senderPassword = "";
 28 
 29     public MailUtil(Properties properties, boolean debug) {
 30         this.smtpHost = properties.getProperty("mail.smtp.host");
 31         this.smtpPort = Integer.parseInt(properties.getProperty("mail.smtp.port"));
 32         this.senderUserName = properties.getProperty("mail.sender.username");
 33         this.senderPassword = properties.getProperty("mail.sender.password");
 34         session = Session.getInstance(properties);
 35         session.setDebug(debug);//开启后有调试信息
 36         message = new MimeMessage(session);
 37     }
 38 
 39     /**
 40      * 发送邮件
 41      *
 42      * @param subject        邮件主题
 43      * @param mailBody       邮件内容
 44      * @param senderNickName 发件人NickName
 45      * @param receiveUser    收件人地址
 46      * @param ccReceiveUser  抄送地址
 47      * @param bccReceiveUser 密送地址
 48      */
 49     public void sendEmail(String subject, String mailBody, String senderNickName,
 50                           String receiveUser, String ccReceiveUser, String bccReceiveUser, Boolean isHtmlFormat) {
 51         try {
 52             // 发件人
 53             InternetAddress from = null;
 54             if (StringUtils.isEmpty(senderNickName)) {
 55                 from = new InternetAddress(senderUserName);
 56             } else {
 57                 from = new InternetAddress(MimeUtility.encodeWord(senderNickName) + " <" + senderUserName + ">");
 58             }
 59             message.setFrom(from);
 60 
 61             // 收件人
 62             InternetAddress to = new InternetAddress(receiveUser);
 63             message.setRecipient(Message.RecipientType.TO, to);
 64 
 65             //抄送人
 66             if (!StringUtils.isEmpty(ccReceiveUser)) {
 67                 InternetAddress cc = new InternetAddress(ccReceiveUser);
 68                 message.setRecipient(Message.RecipientType.CC, cc);
 69             }
 70 
 71             //密送人
 72             if (!StringUtils.isEmpty(bccReceiveUser)) {
 73                 InternetAddress bcc = new InternetAddress(bccReceiveUser);
 74                 message.setRecipient(Message.RecipientType.BCC, bcc);
 75             }
 76 
 77             message.setSubject(subject);
 78             String content = mailBody.toString();
 79 
 80             if (isHtmlFormat) {
 81                 message.setContent(content, "text/html;charset=UTF-8");
 82             } else {
 83                 message.setContent(content, "text/plain;charset=UTF-8");
 84             }
 85             message.saveChanges();
 86             transport = session.getTransport("smtp");
 87             transport.connect(smtpHost, smtpPort, senderUserName, senderPassword);
 88             transport.sendMessage(message, message.getAllRecipients());
 89 
 90             logger.debug(senderUserName + " 向 " + receiveUser + " 发送邮件成功!");
 91 
 92         } catch (Exception e) {
 93             e.printStackTrace();
 94             logger.error("sendEmail失败!", e);
 95         } finally {
 96             if (transport != null) {
 97                 try {
 98                     transport.close();
 99                 } catch (MessagingException e) {
100                     e.printStackTrace();
101                     logger.error("sendEmail->transport关闭失败!", e);
102                 }
103             }
104         }
105     }
106 
107 }步骤3:配置
a) 属性文件mail.properties
1 mail.smtp.host=smtp.qq.com 2 mail.smtp.port=25 3 mail.smtp.auth=true 4 mail.sender.username=xxx@qq.com 5 mail.sender.password=***
b) spring配置注入
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 4 xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc" 5 xmlns:context="http://www.springframework.org/schema/context" 6 xsi:schemaLocation=" 7 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 8 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 9 http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd 10 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 11 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd" 12 default-autowire="byName"> 13 14 <bean id="mailProperties" 15 class="org.springframework.beans.factory.config.PropertiesFactoryBean"> 16 <property name="location" 17 value="classpath:mail.properties"/> 18 </bean> 19 20 <bean id="mailUtil" class="com.cnblogs.yjmyzz.utils.MailUtil"> 21 <constructor-arg index="0" ref="mailProperties"/> 22 <constructor-arg index="1" value="false"/> 23 </bean> 24 25 </beans>
测试代码:
1     @Test
2     public void testSendMail() {
3         ApplicationContext ctx = new ClassPathXmlApplicationContext("spring-context.xml");
4         MailUtil mailUtil = ctx.getBean(MailUtil.class);
5         mailUtil.sendEmail("骚年,崛起吧,人类需要你!", "<font color=red>骚年:</font><h1>快去拯救地球吧!</h1>", "菩提树上的杨过", "aaa@126.com", "bbb@infosky.com.cn", "ccc@sjtu.edu.cn", true);
6         ((ClassPathXmlApplicationContext) ctx).close();
7     }
					点击查看更多内容
					为 TA 点赞
										
				 评论
				共同学习,写下你的评论
评论加载中...
作者其他优质文章
					正在加载中
				
			感谢您的支持,我会继续努力的~
		扫码打赏,你说多少就多少
		赞赏金额会直接到老师账户
		支付方式
		打开微信扫一扫,即可进行扫码打赏哦
	 
                 
             
			 
					