java 发送邮件(亲测有效)

支持qq邮箱、163、其他内网邮箱(qq邮箱需要申请开通发送权限,),方法入参(文件地址列表,收件人列表,邮件主题,邮件内容)

  public static void sendSecond(List<String> filePathList, List<Map<String, Object>> addresseeList, String subject, String content) throws Exception {
        Properties props = new Properties();
        props.setProperty("mail.host", "qq.com");
        props.setProperty("mail.smtp.port", "30");
        props.setProperty("mail.transport.protocol", "smtp"); // 邮件发送协议
        props.setProperty("mail.smtp.auth", "true"); // 需要验证用户名密码
        props.put("mail.smtp.ssl.enable", "false");
        Session session = Session.getInstance(props);
        Message message = new MimeMessage(session);
        message.setSubject(subject);//邮件主题
        Address address = new InternetAddress("123456@qq.com");//发件人邮箱
        message.setFrom(address);

        MimeMultipart mm = new MimeMultipart();

        for (int i = 0; i < filePathList.size(); i++) {
            MimeBodyPart part1 = new MimeBodyPart();
            // 读取本地文件
            DataHandler dh = new DataHandler(new FileDataSource(filePathList.get(i)));
            // 将附件数据添加到"节点"
            part1.setDataHandler(dh);
            // 设置附件的文件名(需要编码)
            part1.setFileName(MimeUtility.encodeText(dh.getName()));
            mm.addBodyPart(part1);
        }

        MimeBodyPart text = new MimeBodyPart();
        text.setContent(content, "text/html;charset=UTF-8");
        for (int i = 0; i < addresseeList.size(); i++) {
            Map<String, Object> addresseeObj = addresseeList.get(i);
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(addresseeObj.get("address").toString(), addresseeObj.get("personal").toString(), "UTF-8"));//接收人邮箱
//            else {
//                message.setRecipient(Message.RecipientType.CC, new InternetAddress(addresseeObj.get("address").toString(),addresseeObj.get("personal").toString(),"UTF-8"));//抄送人邮箱
//            }
        }

        mm.addBodyPart(text);
        mm.setSubType("mixed");//设置混合模式
        message.setContent(mm);
        Transport transport = session.getTransport();
        transport.connect("123455@qq.com", "自己的密码");//发送人邮箱账号、密码
        transport.sendMessage(message, message.getAllRecipients());
        transport.close();
    }
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值