java结合email实现自动推送[通俗易懂]

java结合email实现自动推送[通俗易懂]1、编写方法获取最新标题的最新的标题
2、使用获取额标题进行模糊查询,查询出邮箱地址,标题名称
3、使用email发送邮件

java结合email实现自动推送

1、获取表中最后一条数据

 1 public static String demo() throws SQLException {
 2     String sql = "select * FROM baoxiu ORDER BY id DESC LIMIT 0,1;";
 3         PreparedStatement ptmt = conn.prepareStatement(sql);
 4         ResultSet rs = ptmt.executeQuery();
 5         String str=null;
 6     if(rs.next()) {
 7         str= rs.getString("bt");
 8     }
 9     return str;    
10 }

代码100分

2、使用模糊查询,获取符合条件的所有数据

代码100分 1 public static List<DuibiModel> getBaoX(String bt) throws SQLException {
 2     String sql = "select bt,`user`.cardid,phone FROM baoxiu,`user` WHERE baoxiu.cardid=`user`.cardid AND bt LIKE "%"+bt+"%"";
 3         PreparedStatement ptmt = conn.prepareStatement(sql);
 4         ResultSet rs = ptmt.executeQuery();    
 5     List<DuibiModel> list = new ArrayList<>() ;
 6     while(rs.next()) {
 7         DuibiModel duibi=new DuibiModel();
 8         duibi.setBt(rs.getString("bt"));
 9         duibi.setCardid(rs.getString("cardid"));
10         duibi.setPhone(rs.getString("phone"));
11         list.add(duibi);
12     }
13     return list;    
14 }

3、Java 发送邮件

 1 import javax.mail.Authenticator;
 2 import javax.mail.PasswordAuthentication;
 3  
 4 public class Auth extends Authenticator {
 5  
 6     private String username = "";
 7     private String password = "";
 8  
 9     public Auth(String username, String password) {
10         this.username = username;
11         this.password = password;
12     }
13     public PasswordAuthentication getPasswordAuthentication() {
14         return new PasswordAuthentication(username, password);
15     } 
16 }

代码100分 1 import java.util.Properties;
 2 import javax.mail.Message;
 3 import javax.mail.Session;
 4 import javax.mail.Transport;
 5 import javax.mail.internet.InternetAddress;
 6 import javax.mail.internet.MimeMessage;
 7  
 8 public class SendMail {
 9  
10     private Properties props; //系统属性
11     private Session mailSession; //邮件会话对象
12     private MimeMessage mimeMsg; //MIME邮件对象
13  
14     public SendMail(String SMTPHost, String Port, String MailUsername, String MailPassword) {
15         Auth au = new Auth(MailUsername, MailPassword);
16         //设置系统属性
17         props=java.lang.System.getProperties(); //获得系统属性对象
18         props.put("mail.smtp.host", SMTPHost); //设置SMTP主机
19         props.put("mail.smtp.port", Port); //设置服务端口号
20         props.put("mail.smtp.auth", "true"); //同时通过验证
21         //获得邮件会话对象 
22         mailSession = Session.getInstance(props, au);
23     }
24   
25     public boolean sendingMimeMail(String MailFrom, String MailTo,
26             String MailCopyTo, String MailBCopyTo, String MailSubject,
27             String MailBody) {
28         try { 
29             //创建MIME邮件对象
30             mimeMsg=new MimeMessage(mailSession);
31             //设置发信人
32             mimeMsg.setFrom(new InternetAddress(MailFrom));
33             //设置收信人
34             if(MailTo!=null){
35                 mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(MailTo));
36             } 
37             //设置抄送人
38             if(MailCopyTo!=null){
39                 mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,InternetAddress.parse(MailCopyTo));
40             }
41             //设置暗送人
42             if(MailBCopyTo!=null){
43                 mimeMsg.setRecipients(javax.mail.Message.RecipientType.BCC,InternetAddress.parse(MailBCopyTo));
44             }
45             //设置邮件主题 
46             mimeMsg.setSubject(MailSubject,"utf-8");
47             //设置邮件内容,将邮件body部分转化为HTML格式
48             mimeMsg.setContent(MailBody,"text/html;charset=utf-8");
49             //发送邮件
50             Transport.send(mimeMsg);
51             return true;
52         } catch (Exception e) {
53             e.printStackTrace();
54             return false;
55         }
56     }
57 }

 1 public static boolean email(String email,String str) {
 2     String SMTPHost="smtp.qq.com";
 3     String Port="25";
 4     String MailUsername="gkh35@foxmail.com"; //直接用我的邮件进行发送测试
 5     String MailPassword="wggddlvcrqfubhde"; //密码请勿修改
 6     SendMail sendMail=new     SendMail(SMTPHost,Port,MailUsername,MailPassword);    
 7     String MailFrom="gkh35@foxmail.com"; //发件人
 8     String MailTo=email; //收件人
 9     String MailCopyTo=null; //抄送人
10     String MailBCopyTo=null; //暗送人
11     String MailSubject="发现类似商品"; //邮件主题
12     String MailBody=str; //邮件内容
13     //发送邮件
14     boolean isSend=sendMail.sendingMimeMail(MailFrom, MailTo, MailCopyTo, MailBCopyTo, MailSubject, MailBody);
15     return isSend;
16 }

4、main方法

 1 public static void main(String[] args) throws SQLException {
 2     boolean flag = false;
 3     String str=demo();
 4     for(DuibiModel duibiModel : getBaoX(str)) {
 5         System.out.println("名称为:"+duibiModel.getBt()+","+"身份证号:"+duibiModel.getCardid()+","+"电话号码为:"+duibiModel.getPhone());
 6         flag=email("gkh8299@gmail.com", duibiModel.getBt());
 7     }
 8     if(flag) {
 9         System.out.println("邮件发送成功");
10     }else {
11         System.out.println("邮件发送失败");
12     }
13 }

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/9265.html

(0)
上一篇 2023-02-12
下一篇 2023-02-12

相关推荐

  • 通俗理解大数据及其应用价值[通俗易懂]

    通俗理解大数据及其应用价值[通俗易懂]​大数据概述 在大数据这个概念兴起之前,信息系统存储数据的方法主要是我们熟知的关系型数据库,关系型数据库,关系型模型之父 Edgar F. Codd,在 1970 年 Communications o

    2023-05-15
    100
  • Python命令行应用程序的开发利器——Click库

    Python命令行应用程序的开发利器——Click库在现实生活中,我们经常需要使用命令行工具完成一些任务,比如查看系统信息、安装软件等等。此时,我们就需要针对特定的需求进行命令行应用程序的开发。而Python是一门功能强大、易于学习的编程语言,它几乎可以完成所有的任务,同时Python还拥有大量的库来方便我们开发应用程序。尤其是“Click”库,让Python开发者能够用更少的代码完成更多的事情,它简化了命令行工具的基础代码,提供了一种优雅的方式,让我们快速创建Python的命令行应用程序,实现高效的开发和调试。

    2023-12-26
    70
  • Python脚本实现Mac下批量重命名文件夹的方法

    Python脚本实现Mac下批量重命名文件夹的方法在Mac电脑上,如果需要将多个文件夹重命名,一个一个地手动修改显然十分麻烦。幸运的是,有自动化工具可以帮我们轻松地完成这一任务。本文将介绍使用Python脚本实现Mac下批量重命名文件夹的方法。

    2024-02-15
    43
  • IDEA中database连接时提示Connection to xx@localhost failed.

    IDEA中database连接时提示Connection to xx@localhost failed.使用IDEA连接数据库时,有时会出现连接不上的问题,并提示错误[08001] Could not create connection to database server.如下: 解决方法:在URL…

    2023-02-18
    105
  • Python变量:在代码中存储值

    Python变量:在代码中存储值
    在编写Python代码时,经常需要在代码中存储值,这就是Python变量的作用。Python变量可以存储不同类型的值,包括数值、字符串、列表、元组等。在Python中定义变量非常简单,只需要给变量赋值即可。比如:

    2024-01-21
    54
  • Python面向对象编程中的方法(Method)

    Python面向对象编程中的方法(Method)普通方法是类中最常见的方法,它是类中的实例方法。普通方法的第一个参数是self,代表该方法所属的实例对象。在普通方法中可以访问对象的属性,并且可以调用其他的类方法或普通方法。下面是一个简单的例子:

    2023-12-12
    50
  • 【巨杉数据库SequoiaDB】巨杉Tech | 巨杉数据库数据高性能数据导入迁移实践[通俗易懂]

    【巨杉数据库SequoiaDB】巨杉Tech | 巨杉数据库数据高性能数据导入迁移实践[通俗易懂]SequoiaDB 一款自研金融级分布式数据库产品,支持标准SQL和分布式事务功能、支持复杂索引查询,兼容 MySQL、PGSQL、SparkSQL等SQL访问方式。SequoiaDB 在分布式存储…

    2022-12-23
    100
  • mysql常见笔试题及答案_java笔试题大全带答案

    mysql常见笔试题及答案_java笔试题大全带答案一、Mysql常见笔试题 1、Mysql 中有哪几种锁? (1)表级锁:开销小,加锁快。不会出现死锁,锁定粒度大,发生锁冲突的概率高,并发度低。 (2)行级锁:开销大,加锁慢。会出现死锁,锁定粒度小,

    2023-02-04
    98

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注