java结合email实现自动推送功能
作者:关凯华 发布时间:2023-07-09 00:16:43
标签:java,email,推送
1、获取表中最后一条数据
public static String demo() throws SQLException {
String sql = "select * FROM baoxiu ORDER BY id DESC LIMIT 0,1;";
PreparedStatement ptmt = conn.prepareStatement(sql);
ResultSet rs = ptmt.executeQuery();
String str=null;
if(rs.next()) {
str= rs.getString("bt");
}
return str;
}
2、使用模糊查询,获取符合条件的所有数据
public static List<DuibiModel> getBaoX(String bt) throws SQLException {
String sql = "select bt,`user`.cardid,phone FROM baoxiu,`user` WHERE baoxiu.cardid=`user`.cardid AND bt LIKE '%"+bt+"%'";
PreparedStatement ptmt = conn.prepareStatement(sql);
ResultSet rs = ptmt.executeQuery();
List<DuibiModel> list = new ArrayList<>() ;
while(rs.next()) {
DuibiModel duibi=new DuibiModel();
duibi.setBt(rs.getString("bt"));
duibi.setCardid(rs.getString("cardid"));
duibi.setPhone(rs.getString("phone"));
list.add(duibi);
}
return list;
}
3、Java 发送邮件
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
public class Auth extends Authenticator {
private String username = "";
private String password = "";
public Auth(String username, String password) {
this.username = username;
this.password = password;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMail {
private Properties props; //系统属性
private Session mailSession; //邮件会话对象
private MimeMessage mimeMsg; //MIME邮件对象
public SendMail(String SMTPHost, String Port, String MailUsername, String MailPassword) {
Auth au = new Auth(MailUsername, MailPassword);
//设置系统属性
props=java.lang.System.getProperties(); //获得系统属性对象
props.put("mail.smtp.host", SMTPHost); //设置SMTP主机
props.put("mail.smtp.port", Port); //设置服务端口号
props.put("mail.smtp.auth", "true"); //同时通过验证
//获得邮件会话对象
mailSession = Session.getInstance(props, au);
}
public boolean sendingMimeMail(String MailFrom, String MailTo,
String MailCopyTo, String MailBCopyTo, String MailSubject,
String MailBody) {
try {
//创建MIME邮件对象
mimeMsg=new MimeMessage(mailSession);
//设置发信人
mimeMsg.setFrom(new InternetAddress(MailFrom));
//设置收信人
if(MailTo!=null){
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(MailTo));
}
//设置抄送人
if(MailCopyTo!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,InternetAddress.parse(MailCopyTo));
}
//设置暗送人
if(MailBCopyTo!=null){
mimeMsg.setRecipients(javax.mail.Message.RecipientType.BCC,InternetAddress.parse(MailBCopyTo));
}
//设置邮件主题
mimeMsg.setSubject(MailSubject,"utf-8");
//设置邮件内容,将邮件body部分转化为HTML格式
mimeMsg.setContent(MailBody,"text/html;charset=utf-8");
//发送邮件
Transport.send(mimeMsg);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
public static boolean email(String email,String str) {
String SMTPHost="smtp.qq.com";
String Port="25";
String MailUsername="gkh35@foxmail.com"; //直接用我的邮件进行发送测试
String MailPassword="wggddlvcrqfubhde"; //密码请勿修改
SendMail sendMail=new SendMail(SMTPHost,Port,MailUsername,MailPassword);
String MailFrom="gkh35@foxmail.com"; //发件人
String MailTo=email; //收件人
String MailCopyTo=null; //抄送人
String MailBCopyTo=null; //暗送人
String MailSubject="发现类似商品"; //邮件主题
String MailBody=str; //邮件内容
//发送邮件
boolean isSend=sendMail.sendingMimeMail(MailFrom, MailTo, MailCopyTo, MailBCopyTo, MailSubject, MailBody);
return isSend;
}
4、main方法
public static void main(String[] args) throws SQLException {
boolean flag = false;
String str=demo();
for(DuibiModel duibiModel : getBaoX(str)) {
System.out.println("名称为:"+duibiModel.getBt()+","+"身份证号:"+duibiModel.getCardid()+","+"电话号码为:"+duibiModel.getPhone());
flag=email("gkh8299@gmail.com", duibiModel.getBt());
}
if(flag) {
System.out.println("邮件发送成功");
}else {
System.out.println("邮件发送失败");
}
}
来源:https://www.cnblogs.com/gkh35/archive/2020/03/30/12564286.html


猜你喜欢
- 本文实例讲述了Java基于递归和循环两种方式实现未知维度集合的笛卡尔积。分享给大家供大家参考,具体如下:什么是笛卡尔积?在数学中,两个集合X
- 一、背景单机节点下,WebSocket连接成功后,可以直接发送消息。而多节点下,连接时通过nginx会代理到不同节点。假设一开始用户连接了n
- 在开源中国看到的操作ini文件的,写的还不看,留着以后用using System;using System.IO;using System.
- 前言:在Java项目中,有两个主要的构建系统:Gradle和Maven。构建系统主要管理潜在的复杂依赖关系并正确编译项目。还可以将已编译的项
- 题目一(有关传值调用与非法访问)请问运行Test 函数会有什么样的结果?答 :程序运行会崩溃 ! 且存在内存泄漏 ;原因:1.str传给p的
- 前言:本人目前从事java开发,但同时也在学习各种前端技术,下面是我做的一个前后端分离项目的一个小案例,不足之处请多多指教1. 项目技术选型
- 好问题。答案就是这篇文章的题目所建议的,这是一种合理的设计。在这种情况下,newInstance()方法是一种“静态工厂方法",让
- 我们与客户端的接 * 互中,为了更高的安全性,我们可能需要对接口加密(请求参数加密,服务端解密)、返回信息加密(服务端加密,客户端解密),但是
- 前言在使用Java开发接口请求中,我们需要对请求进行进行统一返回值,这时候我们自己封装一个统一的Result返回类,下面就介绍下我用的这种的
- (一)springboot web项目打jar包1、打包两种打包方式maven命令打包切换目录到工程根下,pom.xml所在位置,运行mav
- 很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑。但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下。一加
- Java中普通代码块,构造代码块,静态代码块区别及代码示例//执行顺序:(优先级从高到低。)静态代码块>mian方法>构造代码块
- 使用后台返回验证码图片,验证码存到session中后端实现校验,前端只展示验证码图片。本篇用SpringBoot Thymeleaf实现验证
- 本文主要介绍了spring-boot-maven-plugin报红解决方案,亲测有效,具体如下:<?xml version="
- C# windows语音识别与朗读示例,供大家参考,具体内容如下本示例通过windows语音识别功能进行语音识别和文本朗读。打开window
- 1.EazyEmail邮件发送类库Net 类库自带了邮件发送功能。笔者对该类库,从使用的角度进行了二次封装,nuget上可搜索EazyEma
- 整理文档,搜刮出一个Spring 实现excel及pdf导出表格的代码,稍微整理精简一下做下分享。excel 导出:package ligh
- spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的
- 对于现在的 App 来说,布局页面基本都会用到沉浸式状态栏,单纯的沉浸式状态栏很容易解决,但是在华为手机上存在一个底部虚拟按键的问题,会导致
- 这个类(我的是Activity中)继承SensorEventListener接口先获取传感器对象,再获取传感器对象的类型//获取传感器管理对