本次说的是用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);
}
}