1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
//相关代码 package com.jeesite.utils; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import java.util.Date; import java.util.Properties; public class SendMail { //发件人地址 public static String senderAddress = "18538731353@163.com"; //收件人地址 //public static String recipientAddress = "18538731353@163.com"; //发件人账户名 public static String senderAccount = "18538731353@163.com"; //发件人账户密码 public static String senderPassword = "wang123"; /** * 获得创建一封邮件的实例对象 * @param session * @return * @throws MessagingException * @throws AddressException */ public static MimeMessage getMimeMessage(Session session , String recipientAddress,String incomeList) throws Exception{ //创建一封邮件的实例对象 MimeMessage msg = new MimeMessage(session); //设置发件人地址 msg.setFrom(new InternetAddress(senderAddress)); /** * 设置收件人地址(可以增加多个收件人、抄送、密送),即下面这一行代码书写多行 * MimeMessage.RecipientType.TO:发送 * MimeMessage.RecipientType.CC:抄送 * MimeMessage.RecipientType.BCC:密送 */ msg.setRecipient(MimeMessage.RecipientType.TO,new InternetAddress(recipientAddress)); //设置邮件主题 msg.setSubject("对账单","UTF-8"); //设置邮件正文 msg.setContent(incomeList, "text/html;charset=UTF-8"); //设置邮件的发送时间,默认立即发送 msg.setSentDate(new Date()); return msg; } public static void sendIncomeMail(String recipientAddress,String incomeList)throws Exception{ //1、连接邮件服务器的参数配置 Properties props = new Properties(); //阿里云服务器禁用25端口,所以服务器上改为465端口 props.put("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.setProperty("mail.smtp.socketFactory.port", "465"); // props.setProperty("mail.smtp.port", "465"); // props.setProperty("mail.smtp.ssl.enable", "true"); //设置用户的认证方式 props.setProperty("mail.smtp.auth", "true"); //设置传输协议 props.setProperty("mail.transport.protocol", "smtp"); //设置发件人的SMTP服务器地址 props.setProperty("mail.smtp.host", "smtp.163.com"); //2、创建定义整个应用程序所需的环境信息的 Session 对象 Session session = Session.getInstance(props); //设置调试信息在控制台打印出来 session.setDebug(true); //3、创建邮件的实例对象 Message msg = getMimeMessage(session,recipientAddress,incomeList); //4、根据session对象获取邮件传输对象Transport Transport transport = session.getTransport(); //设置发件人的账户名和密码 transport.connect(senderAccount, senderPassword); //发送邮件,并发送到所有收件人地址,message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人 transport.sendMessage(msg,msg.getAllRecipients()); //如果只想发送给指定的人,可以如下写法 //transport.sendMessage(msg, new Address[]{new InternetAddress("xxx@qq.com")}); //5、关闭邮件连接 transport.close(); } //测试 public static void main(String[] args) { try { sendIncomeMail("201269920@qq.com","邮件接口测试"); } catch (Exception e) { e.printStackTrace(); System.out.println("失败"); } } }
//相关依赖 <dependency> |