java 发送邮件(支持多附件,抄送人等功能)

xiaoxiao2021-03-01  13

public String sendMail(String mailTitle,String mailContent,String fileName, String receiver,String carbonCopy, List<FolderInfoVO> attachedFile) { String sendResult = "";// 邮件发送结果 /** * 邮件成功执行则不抛出异常,执行失败抛出异常,并返回邮件发送结果 */ try { Properties props = System.getProperties(); props.put("mail.smtp.host", "mail.chinamobilesz.com:25"); props.put("mail.smtp.auth", "true"); // props.put("mail.debug", "true"); //props.put("mail.smtps.timeout","25000"); Session session = Session.getInstance(props, null); // 根据邮件会话属性和密码验证器构造一个发送邮件的session Message msg = new MimeMessage(session); // 根据session创建一个邮件消息 msg.setFrom(new InternetAddress("newbiztesting@chinamobilesz.com"));//设置邮件发送人地址 msg.setRecipients(Message.RecipientType.TO, //设置邮件接收人地址 InternetAddress.parse(receiver, false)); /** * //抄送人不为空时需将邮件抄送 */ if(!"".equals(carbonCopy)){ msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(carbonCopy, false)); } msg.setSubject(mailTitle); //邮件标题 //msg.setText(mailContent); Multipart mp = new MimeMultipart("mixed"); // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 MimeBodyPart mbp = new MimeBodyPart(); // 创建一个包含HTML内容的MimeBodyPart mbp.setContent(mailContent.toString(), "text/html;charset=gb2312"); // 设置HTML内容 mp.addBodyPart(mbp); //将MimeBodyPart加入容器 /** * 判断附件是否为空,不为空则将附件置于邮件体内 */ if(attachedFile != null && !attachedFile.isEmpty() ){ System.out.println("--------------附件------------------------------------"); for (Iterator<FolderInfoVO> iterator = attachedFile.iterator(); iterator .hasNext();) { mbp = new MimeBodyPart(); FolderInfoVO vo = (FolderInfoVO) iterator.next(); System.out.println("邮件发送核心类------------附件地址-----"+vo.getFolderName()); FileDataSource dataSource = new FileDataSource(vo.getFolderPath()); // 得到数据源 mbp.setDataHandler(new DataHandler(dataSource)); // 得到附件本身并至入BodyPart mbp.setFileName(MimeUtility.encodeText(dataSource.getName())); // 得到文件名同样至入BodyPart mp.addBodyPart(mbp); } } msg.setContent(mp); // 将MiniMultipart对象设置为邮件内容 msg.setSentDate(new Date());// 设置发送日期 SMTPTransport t = (SMTPTransport) session.getTransport("smtp"); t.connect("mail.chinamobilesz.com", "newbiztesting", "*****"); t.sendMessage(msg, msg.getAllRecipients()); //发送邮件(第一个参数代表邮件内容,第二个代表所有的接收人地址,包含抄送人等等) sendResult = "发送成功"; System.out.println("================发送成功==================="); t.close(); } catch (Exception e) { e.printStackTrace(); sendResult="发送失败"; e.getMessage(); System.out.println("发送失败================="+e.getMessage()); } return sendResult;// 邮件发送结果 } 相关资源:谷歌安装器(如果Go安装器无法打卡可以使用这个)
转载请注明原文地址: https://www.6miu.com/read-3649968.html

最新回复(0)