①pom依赖
<dependency> <groupId>com.sun.mail</groupId> <artifactId>javax.mail</artifactId> <version>1.5.2</version> </dependency>
②实现
final Properties props = new Properties(); props.put("mail.smtp.auth", "true"); // 阿里mail (alibaba-inc) 或者163 props.put("mail.smtp.host", "smtp.163.com"); props.put("mail.smtp.port", "465"); props.put("mail.debug", "true"); // 如果使用ssl, 需如下配置, props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.user", mailSenderEntity.getSenderEmail()); props.put("mail.password", mailSenderEntity.getSenderPwd()); // 构建授权信息, 用于进行smtp进行身份验证 Authenticator authenticator = new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { //用户名,密码 String userName = props.getProperty("mail.user"); String password = props.getProperty("mail.password"); return new PasswordAuthentication(userName, password); } }; //使用环境属性和授权信息,创建邮件会话 Session mailSession = Session.getInstance(props, authenticator); //创建邮件消息 MimeMessage message = new MimeMessage(mailSession) { }; try { // 设置发件人邮件地址和名称。和上面的mail.user保持一致。名称用户可以自定义填写。 InternetAddress from = new InternetAddress(props.getProperty("mail.user"), props.getProperty("mail.user")); message.setFrom(from); // 设置收件人邮件地址, 以dot隔开 String toEmails = "3***@qq.com, 4***@qq.com" InternetAddress[] sendTos = InternetAddress.parse(mailSenderEntity.getRecipientEmails()); message.setRecipients(MimeMessage.RecipientType.TO, sendTos); //密送 String bccEmails = "1***@qq.com, 2***@qq.com"; if (StringUtil.isNotEmpty(bccEmails)) { InternetAddress[] bccSendTos = InternetAddress.parse(bccEmails); message.setRecipients(MimeMessage.RecipientType.BCC, bccSendTos); } //抄送 String ccEmails = "1***@qq.com, 2***@qq.com"; if (StringUtil.isNotEmptyccEmails )) { InternetAddress[] ccSendTos = InternetAddress.parse(ccEmails); message.setRecipients(MimeMessage.RecipientType.CC, ccSendTos); } // 设置邮件标题 message.setSubject("test"); // 设置邮件的内容体 message.setContent("send mail test", "text/html;charset=UTF-8"); message.setSentDate(new Date()); // 发送邮件 Transport.send(message); } catch (Exception ex) { e.printStack(); }