Java发送邮箱-需要画表格内容

通过java代码画表格。

邮件内容中:最终的样式:-是图中标注的内容

在这里插入图片描述

具体代码实现类:–工具类

工具类直接抄就好了,已经封装好了的。

  /**
     * description :Html形式邮箱内容
     * @param htmlContent 标题内容
     * @param contentList 表格内容
     * @author 
     * @date 2024/03/11 11:18
     * @return String
     */
 public static String generateHtml(String htmlContent, List<String[]> contentList) {
        StringBuilder stb = new StringBuilder();
        stb.append("<!DOCTYPE html>\n")
                .append("<html lang=\"zh\">\n")
                .append(generateHtmlBody(htmlContent,contentList))
                .append("</html>");
        return stb.toString();
    }

/**
     * description :控制表格内容显示
     * @param htmlContent 标题内容
     * @param contentList 表格内容
     * @author
     * @date 2024/03/11 11:18
     * @return String
     */
    public static String generateHtmlBody(String htmlContent, List<String[]> contentList) {
        StringBuilder stb = new StringBuilder();
        stb.append("<body>\n")
                .append("<div style=\"font-size: 16px;\">" + htmlContent + "</div>")
                .append("<table style=\"border-width: 1px;border-collapse: collapse;margin: 0 auto;width: 100%;\">\n");
        for (int i = 0; i < contentList.size(); i++) {
            if (i == 0) {
                stb.append("    <tr>\n");
                String[] tableHead = contentList.get(0);
                for (int j = 0; j < tableHead.length; j++) {
                    stb.append("        <th style=\"border-width:1px;padding:8px;border-style:solid;background-color:#dedede;\">").append(tableHead[j]).append("</th>\n");
                }
                stb.append("    </tr>\n");
            } else {
                stb.append("    <tr>\n");
                String[] tableData = contentList.get(i);
                for (int j = 0; j < tableData.length; j++) {
                    stb.append("        <td style=\"border-width:1px;padding:8px;border-style:solid;\">").append(tableData[j]).append("</td>\n");
                }
                stb.append("    </tr>\n");
            }
        }
        stb.append("</table>\n")
                .append("</body>");
        return stb.toString();
    }

具体的代码使用部分:

// 内容: 这里面的mailContent  是邮件内容
// contentList 是整体表格内容   tableTitle 是表格内容第一行,标题行
           String mailContent = "该审批存在如下物理用印文件,请尽快完成用印文件回传: <br/>" +
                    "申请时间:" + applyTabVoList.get(0).getCreateTime().format(formatter) +"<br/>" +
                    "申请编号:" + applyTabVoList.get(0).getApplyNo() + "<br/>"+
                    "审批类型:" + ProcessEnum.INFORMATION_DISCLOSURE.getInfo() + "<br/>" +
                    "文件上传人/审批发起人:" + applyTabVoList.get(0).getUsrNm() + "<br/>" +
                    "<br/>" ;
            // 邮件里面的表格内容
            ArrayList<String[]>  contentList = new ArrayList<>();
            String[] tableTitle = {"序号", "项目简称", "文件目录", "文件类型", "文件名称"};
            contentList.add(tableTitle);
            for (int i = 0; i < applyTabVoList.size(); i++) {
                String[] tableCum = new String[5];
                tableCum[0] = String.valueOf(i + 1);
                tableCum[1] = applyTabVoList.get(i).getPrjNm() != null ? applyTabVoList.get(i).getPrjNm() : "无";
                tableCum[2] = AnnexTypeEnum.getEnumInfoByKey( applyTabVoList.get(i).getObjType());
                tableCum[3] = PublMateTpEnum.getEnumInfoByKey(applyTabVoList.get(i).getPublMateTp());
                tableCum[4] = applyTabVoList.get(i).getFileName();
                contentList.add(tableCum);
            }

// 将上面的工具类,写在一个工具类里面,我写在MailUtils工具类里面的,所以我就直接这样去调用。
 String contentList2 = MailUtils.generateHtml(mailContent, contentList);
// 放回的内容就是,邮件正文全内容,包含表格+邮件内容

最终得到的效果就是

就是下面这部分的内容
在这里插入图片描述

注意

applyTabVoList 是我查询我的数据库放回的集合对象,我需要将这里面内容写进表格里面去。
你的就替换为自己的。
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我可以为您提供一些Java发送包含表格的邮件的代码示例。 首先,您需要使用JavaMail API来发送邮件。以下是一个简单的示例代码,可以发送包含表格的HTML电子邮件。 ```java import java.util.*; import javax.mail.*; import javax.mail.internet.*; public class SendEmail { public static void main(String [] args) { // 收件人电子邮件地址 String to = "recipient@example.com"; // 发件人电子邮件地址 String from = "sender@example.com"; // 发件人电子邮件密码(如果需要验证) String password = "password"; // SMTP服务器地址 String host = "smtp.example.com"; // 创建邮件会话 Properties properties = System.getProperties(); properties.setProperty("mail.smtp.host", host); properties.setProperty("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(properties, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(from, password); } }); try { // 创建邮件对象 MimeMessage message = new MimeMessage(session); // 设置发件人 message.setFrom(new InternetAddress(from)); // 设置收件人 message.addRecipient(Message.RecipientType.TO, new InternetAddress(to)); // 设置邮件主题 message.setSubject("Test Email"); // 创建邮件内容 String html = "<html><body><table border='1'><tr><th>Column 1</th><th>Column 2</th></tr><tr><td>Row 1, Column 1</td><td>Row 1, Column 2</td></tr><tr><td>Row 2, Column 1</td><td>Row 2, Column 2</td></tr></table></body></html>"; MimeBodyPart messageBodyPart = new MimeBodyPart(); messageBodyPart.setContent(html, "text/html"); // 设置邮件内容 Multipart multipart = new MimeMultipart(); multipart.addBodyPart(messageBodyPart); message.setContent(multipart); // 发送邮件 Transport.send(message); System.out.println("邮件已发送!"); } catch (MessagingException e) { e.printStackTrace(); } } } ``` 在上面的代码示例中,我们通过创建一个HTML表格来设置邮件内容,并将其放入MimeBodyPart中。然后,我们将MimeBodyPart添加到Multipart对象中,并将其设置为邮件内容。最后,我们使用Transport.send()方法发送邮件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值