JavaMail开发

---------------------------------------------发邮件------------------------------------------

需要jar包:

  javaMail:mail.jar

  jaf:activation.jar

  1 public class MailTest {
  2 
  3     /**
  4      * 发送一个正常的邮件--只含文本
  5      * @throws Exception 
  6      */
  7     @Test
  8     public void sendNormal() throws Exception {
  9         
 10         //1,设置邮箱服务器参数
 11         Properties props = new Properties();
 12         props.put("mail.transport.protocol", "smtp");    // 指定协议
 13         props.put("mail.smtp.host", "localhost");        // 主机   
 14         props.put("mail.smtp.port", 25);                // 端口
 15         props.put("mail.smtp.auth", "true");            // 用户密码认证
 16         props.put("mail.debug", "true");                // 调试模式
 17         
 18         //2,创建邮件会话对象
 19         Session session = Session.getInstance(props, new Authenticator() {
 20             @Override
 21             protected PasswordAuthentication getPasswordAuthentication() {
 22                 return new PasswordAuthentication("user1", "user1");
 23             }
 24         });
 25         
 26         MimeMessage message = new MimeMessage(session);
 27         message.setSentDate(new Date());
 28         message.setFrom(new InternetAddress("user1@test.com"));
 29         message.setRecipient(RecipientType.TO, new InternetAddress("user2@test.com"));
 30         message.setSubject("标题");
 31         message.setText("内容");
 32         
 33         Transport.send(message);
 34         
 35     }
 36     
 37     /**
 38      * 发送带图片的邮件
 39      * 
 40      */
 41     @Test
 42     public void sendPhothMail() throws Exception {
 43         //1,设置邮箱服务器参数
 44         Properties props = new Properties();
 45         props.put("mail.transport.protocol", "smtp");    // 指定协议
 46         props.put("mail.smtp.host", "localhost");        // 主机   
 47         props.put("mail.smtp.port", 25);                // 端口
 48         props.put("mail.smtp.auth", "true");            // 用户密码认证
 49 //        props.put("mail.debug", "true");                // 调试模式
 50         
 51         //2,创建邮件会话对象
 52         Session session = Session.getInstance(props, new Authenticator() {
 53             @Override
 54             protected PasswordAuthentication getPasswordAuthentication() {
 55                 return new PasswordAuthentication("user1", "user1");
 56             }
 57         });
 58         
 59         //3,邮件信息
 60         MimeMessage message = new MimeMessage(session);
 61         message.setSentDate(new Date());
 62         message.setFrom(new InternetAddress("user1@test.com"));
 63         message.setRecipient(RecipientType.TO, new InternetAddress("user2@test.com"));
 64         message.setSubject("带图片的邮件");
 65         message.setSentDate(new Date());
 66 //        message.setText("哈哈");  当使用Multipart时候,设置文本就无效
 67 
 68         /**************1. 邮件设置图片资源********************/
 69         // 1.1 创建负责复杂邮件体
 70         MimeMultipart mul = new MimeMultipart("relassssted");
 71         // 邮件体related  = 内容 +  资源
 72         MimeBodyPart content = new MimeBodyPart(); // 内容
 73         MimeBodyPart resource = new MimeBodyPart();  // 资源
 74         // 把内容资源设置到复杂邮件中
 75         mul.addBodyPart(content);
 76         mul.addBodyPart(resource);
 77         
 78         //---- 设置邮件资源-----
 79         
 80         File file = new File("f:/1.jpg");
 81         // 设置本地数据资源
 82         resource.setDataHandler(new DataHandler(new FileDataSource(file)));  
 83         // 设置网络数据
 84 //        resource.setDataHandler(new DataHandler(new URL("https://ss0.bdstatic.com/70cFuHSh_Q1YnxGkpoWK1HF6hhy/it/u=1623986359,132242757&fm=117&gp=0.jpg")));
 85         resource.setContentID("1.jpg");  // 图片资源在邮件中的名称
 86         
 87         //---- 设置邮件内容------
 88         content.setContent("<img src='cid:1.jpg' />正文邮件,你看图片!", "text/html;charset=UTF-8");
 89         
 90         // 1.2 把复杂邮件,设置到邮件对象中(message)!
 91         message.setContent(mul);
 92         
 93         message.saveChanges(); // 保存邮件
 94         
 95         Transport.send(message);
 96         
 97     }
 98     
 99     /**
100      * 发送带图片和附件的邮件
101      */
102     @Test
103     public void sendAttachMail() throws Exception {
104         //1,设置邮箱服务器参数
105         Properties props = new Properties();
106         props.put("mail.transport.protocol", "smtp");    // 指定协议
107         props.put("mail.smtp.host", "localhost");        // 主机   
108         props.put("mail.smtp.port", 25);                // 端口
109         props.put("mail.smtp.auth", "true");            // 用户密码认证
110         props.put("mail.debug", "true");                // 调试模式
111         
112         //2,创建邮件会话对象
113         Session session = Session.getInstance(props, new Authenticator() {
114             @Override
115             protected PasswordAuthentication getPasswordAuthentication() {
116                 return new PasswordAuthentication("user1", "user1");
117             }
118         });
119         
120         MimeMessage message = new MimeMessage(session);
121         message.setFrom(new InternetAddress("user1@test.com"));
122         message.setRecipient(RecipientType.TO, new InternetAddress("user2@test.com"));
123         message.setSubject("带图片和附件的邮件:");
124         message.setSentDate(new Date());
125         
126         //3.设置复杂邮件格式
127         MimeMultipart mix = new MimeMultipart();
128         //3.1附件
129         MimeBodyPart attach = new MimeBodyPart();
130         //3.2正文
131         MimeBodyPart content = new MimeBodyPart();
132         //3.3附件正文添加到复杂格式中
133         mix.addBodyPart(attach);
134         mix.addBodyPart(content);
135         
136         //3.3.1附件内容设置
137         attach.setDataHandler(new DataHandler(new FileDataSource(zipFile(new File("f:/1.jpg")))));
138         attach.setFileName(MimeUtility.encodeText("附件.zip"));
139         
140         //3.3.2正文设置
141         MimeMultipart mul = new MimeMultipart();
142         MimeBodyPart text = new MimeBodyPart();
143         MimeBodyPart img = new MimeBodyPart();
144         mul.addBodyPart(text);
145         mul.addBodyPart(img);
146         //图片文本设置
147         img.setDataHandler(new DataHandler(new FileDataSource(new File("f:/1.jpg"))));
148         img.setContentID("1.jpg");
149         text.setContent("<img src='cid:1.jpg' />哈哈附件+文本+图片", "text/html;charset=utf-8");
150         //正文内容添加到邮件
151         content.setContent(mul);
152         
153         //复杂邮件格式添加到邮件主体
154         message.setContent(mix);
155         
156         //4,发送邮件
157         Transport.send(message);
158     }
159 
160     /**
161      * 数据压缩
162      * @throws IOException
163      */
164     public File zipFile(File file) throws IOException {
165         
166         String tem = "f:/2.zip";
167         
168         InputStream in = new FileInputStream(file);
169         GZIPOutputStream out = new GZIPOutputStream(new FileOutputStream(new File(tem)));
170         byte[] buf = new byte[8*1024];
171         int len = 0;
172         while ((len = in.read(buf)) != -1) {
173             out.write(buf, 0, len);
174         }
175         in.close();
176         out.close();
177         
178         File temFile = new File(tem);
179         
180         return file;
181         
182     }
183 
184 }

 

转载于:https://www.cnblogs.com/webyyq/p/6764442.html

一、数据采集层:多源人脸数据获取 该层负责从不同设备 / 渠道采集人脸原始数据,为后续模型训练与识别提供基础样本,核心功能包括: 1. 多设备适配采集 实时摄像头采集: 调用计算机内置摄像头(或外接 USB 摄像头),通过OpenCV的VideoCapture接口实时捕获视频流,支持手动触发 “拍照”(按指定快捷键如Space)或自动定时采集(如每 2 秒采集 1 张),采集时自动框选人脸区域(通过Haar级联分类器初步定位),确保样本聚焦人脸。 支持采集参数配置:可设置采集分辨率(如 640×480、1280×720)、图像格式(JPG/PNG)、单用户采集数量(如默认采集 20 张,确保样本多样性),采集过程中实时显示 “已采集数量 / 目标数量”,避免样本不足。 本地图像 / 视频导入: 支持批量导入本地人脸图像文件(支持 JPG、PNG、BMP 格式),自动过滤非图像文件;导入视频文件(MP4、AVI 格式)时,可按 “固定帧间隔”(如每 10 帧提取 1 张图像)或 “手动选择帧” 提取人脸样本,适用于无实时摄像头场景。 数据集对接: 支持接入公开人脸数据集(如 LFW、ORL),通过预设脚本自动读取数据集目录结构(按 “用户 ID - 样本图像” 分类),快速构建训练样本库,无需手动采集,降低系统开发与测试成本。 2. 采集过程辅助功能 人脸有效性校验:采集时通过OpenCV的Haar级联分类器(或MTCNN轻量级模型)实时检测图像中是否包含人脸,若未检测到人脸(如遮挡、侧脸角度过大),则弹窗提示 “未识别到人脸,请调整姿态”,避免无效样本存入。 样本标签管理:采集时需为每个样本绑定 “用户标签”(如姓名、ID 号),支持手动输入标签或从 Excel 名单批量导入标签(按 “标签 - 采集数量” 对应),采集完成后自动按 “标签 - 序号” 命名文件(如 “张三
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值