java 发送从数据库查询的数据作为表格展示

本次说的是用java 发送表格展示的邮件

其他发送普通邮件,带附件的邮件在我另外2篇文章中也有
好了 ,直接来代码 ,使用到的jar包
1 所用的jar
网盘连接
提取码:0sgd

本次使用的是企业邮箱发送

public class SendMail_html {
    /**
     * 发送邮件的方法
     * @param to	接收人
     * @param title	邮件主题
     * @param content	邮件内容
     * @return
     */
    public static String sendMail(String to, String title, String content) {
        /**
         * 1、设置邮箱的一些属性
         * 2、创建认证对象authenticator,使用自己的邮件账号和授权码
         * 3、获得一个session对象,用来保存认证对象
         * 4、创建邮件消息对象message
         * 	4.1、设置message的发送人,这个要和认证对象的账号一致
         *  4.2、设置message的接收人
         * 	4.3、设置邮件的主题和内容
         */

        // 1、创建Properties属性对象,并设置一些邮件的属性
        Properties props = new Properties();
        props.setProperty("mail.host", "smtp.exmail.qq.com"); // 设置邮箱服务器
        props.setProperty("mail.transport.protocol", "SMTP"); // 设置邮箱发送的协议
        props.setProperty("mail.smtp.auth", "true"); // 设置认证方式

        //使用SSL,企业邮箱必需!
        //开启安全协议
        MailSSLSocketFactory sf = null;
        try {
            sf = new MailSSLSocketFactory();
            sf.setTrustAllHosts(true);
        } catch (GeneralSecurityException e1) {
            e1.printStackTrace();
        }
        props.put("mail.smtp.ssl.enable", "true");
        props.put("mail.smtp.ssl.socketFactory", sf);

        // 2、创建认证对象authenticator
        Authenticator authenticator = new Authenticator() {
            public PasswordAuthentication getPasswordAuthentication() {
            //    return new PasswordAuthentication("xuxingqi_123@163.com", "xu714072516"); // 邮件账号和授权码,注意不是密码。
                return new PasswordAuthentication("发件人邮箱", "发件人邮箱授权码"); // 邮件账号和授权码,注意不是密码。
            }
        };

        // 3、创建会话对象session
        Session session = Session.getInstance(props, authenticator);

        // 4、创建邮件消息对象,设置发送人、接收人、邮件主题、邮件内容
        MimeMessage mess = new MimeMessage(session);
        try {
            mess.setFrom(new InternetAddress("发件人邮箱")); // 设置邮件的发件人
            mess.setRecipients(Message.RecipientType.TO, to); // 设置收件人
            mess.setSubject(title); // 设置邮件标题
            mess.setContent(content, "text/html;charset=utf-8"); // 设置邮件内容和格式

            // 5、发送邮件
            Transport.send(mess);
        } catch (MessagingException e) {
            e.printStackTrace();
            return "发送邮件失败, 原因:" + e.getMessage();
        }
        return "发送邮件成功!接收人:" + to;

    }

    public static void main(String[] args) {

        //获取数据库的连接
        Connection conn = JDBCUtils.getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;


        String sql = "SELECT date,name,sex,age,birthday from test ";

        StringBuilder content = null;

        //获取操作sql对象
        try {


            pstmt = conn.prepareStatement(sql);
            rs = pstmt.executeQuery();

             content = new StringBuilder("<html><head></head><body><h2>title</h2>");
            content.append("<table border=\"5\" style=\"border:solid 1px #E8F2F9;font-size=14px;;font-size:18px;\">");
            content.append("<tr style=\"background-color: #428BCA; color:#ffffff\"><th>日期</th><th>姓名</th><th>性别</th><th>年龄</th><th>生日</th></tr>");
            while (rs.next()) {
                content.append("<tr>");
                content.append("<td>" +rs.getString(1)+"</td>"); //第一列
                content.append("<td>" +rs.getString(2)+ "</td>"); //第二列
                content.append("<td>" +rs.getString(3)+ "</td>"); //第三列
                content.append("<td>" +rs.getString(4)+ "</td>"); //第四列
                content.append("<td>" +rs.getString(5)+ "</td>"); //第五列
                content.append("</tr>");
            }
            content.append("</table>");
        //    content.append("<h3>description</h3>");
            content.append("</body></html>");


        } catch (SQLException e) {
            e.printStackTrace();
        }



        //接收人      邮件主题      邮件内容

        String mess = sendMail("发件人邮箱", "邮件标题", content.toString()); 
  
        System.out.println(mess);   //控制台输出返回消息


        //释放连接资源
        JDBCUtils.release(rs,pstmt,conn);
    }


}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值