import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Enumeration;
import java.util.Properties;
import java.util.Vector;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Authenticator;
import javax.mail.FetchProfile;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Header;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class Mymail {
private static final String SMTP_HOST_NAME = "smpt.163.com";
private static final String POP3_HOST_NAME = "pop3.163.com";
private static String USERNAME = "";
private static String PASSWORD = "";
//private static final String emailMsgTxt = "测试";
private static final String emailSubjectTxt = "享受生活中的每一刻";
private static final String emailFromAddress = "test@163.com";
private String filename="";
private Vector<String> file = new Vector<String>();
// Add List of Email address to who email needs to be sent to
private static final String[] emailList = {"test@163.com"};
//private static String attachpath = "E:/email/";
private static String contentpath = "E:/邮件.txt";
private static String savepath = "E:/email/";
public static void main(String args[]) throws Exception{
//System.out.println(emailMsgTxt);
//smtpMailSender.attachfiles("E:/tosend");
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
Mymail smtpMailSender = new Mymail ();
while(true){
System.out.println("press number 1 to post mail,number 2 to fetch mail,0 to exit");
String number = reader.readLine();
int flag = 0;
while(true){
try{
flag = Integer.parseInt(number);
break;
}catch(Exception e){
System.out.println("please input number");
number = reader.readLine();
}
}
switch(flag){
case 0:{
System.out.println("Bye-Bye!/nWelcome to back next time.");
System.exit(0);
}
case 1:{
String content = smtpMailSender.readFromFile();
smtpMailSender.attachfile("E:/email/当下的幸福.pps");
smtpMailSender.read(0);
while(smtpMailSender.postMail( emailList, emailSubjectTxt, content, emailFromAddress)==false){
smtpMailSender.read(1);
}
break;
}
case 2:{
smtpMailSender.read(0);
while(smtpMailSender.fetchMail()==false){
smtpMailSender.read(1);
}
break;
}
default :break;
}
}
}
private void read(int c) throws Exception{
if(USERNAME!="" && PASSWORD!=""){
return ;
}
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
if(c==0){
System.out.print("Please input username and password/nUsername:");
}else{
System.out.print("Invalid username or password,please input again/nUsername:");
}
USERNAME = reader.readLine();
System.out.print("Password:");
PASSWORD = reader.readLine();
}
public void sendMail(String subject, String content) throws Exception{
postMail( emailList, subject, content, emailFromAddress);
System.out.println("Sucessfully Sent mail to All Users");
}
public boolean postMail( String recipients[], String subject,
String message , String from){
boolean debug = false;
//Set the host smtp address
Properties props = System.getProperties();
props.put("mail.smtp.host", SMTP_HOST_NAME);
props.put("mail.smtp.auth", "true");
//设置代理,但是无效
//props.put("proxySet", "true");
//props.put("http.ProxyPort", "192.168.12.227");
//props.put("http.sProxyHost", "8888");
Authenticator auth = new SMTPAuthenticator();
Session session = Session.getInstance(props, auth);
session.setDebug(debug);
// create a message
Message msg = new MimeMessage(session);
// set the from and to address
try{
InternetAddress addressFrom = new InternetAddress(from);
msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length];
for (int i = 0; i < recipients.length; i++){
addressTo[i] = new InternetAddress(recipients[i]);
}
msg.setRecipients(Message.RecipientType.TO, addressTo);
Multipart mp = new MimeMultipart();
Enumeration efile=file.elements();
while(efile.hasMoreElements()){
MimeBodyPart mbp = new MimeBodyPart();
filename = efile.nextElement().toString();
FileDataSource fds = new FileDataSource(filename);
mbp.setDataHandler(new DataHandler(fds));
//用于解决中文乱码问题
//sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder();
//mbp.setFileName("=?GBK?B?"+enc.encode(fds.getName().getBytes())+"?=");
mbp.setFileName(MimeUtility.encodeText(fds.getName()));
mp.addBodyPart(mbp);
}
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(message, "text/plain;charset=gbk");
mp.addBodyPart(mbp);
// Setting the Subject and Content Type
msg.setSubject(subject);
msg.setSentDate(new Date((new Date()).getTime()-325000));
//msg.setContent(message, "text/plain;charset=GBK");
msg.setContent(mp);
Enumeration em = msg.getAllHeaders();
while(em.hasMoreElements()){
Header h = (Header)em.nextElement();
System.out.println(h.getName()+":"+h.getValue());
}
//msg.setHeader("X-Smtpd-IP", "192.168.12.201");
//msg.setText(message);
Transport.send(msg);
session = null;
}catch(Exception e){
//e.printStackTrace();
USERNAME="";
PASSWORD="";
return false;
}
file.removeAllElements();
System.out.println("Sucessfully Sent mail to All Users");
return true;
}
@SuppressWarnings("deprecation")
public boolean fetchMail(){
Session session = Session.getDefaultInstance(System.getProperties(),null);
Folder inbox = null;
Store store = null;
try{
store = session.getStore("pop3");
System.out.print("connecting......");
store.connect(POP3_HOST_NAME, USERNAME, PASSWORD);
System.out.println("successfully");
}catch(Exception e){
System.out.println("failure");
USERNAME="";
PASSWORD="";
return false;
}
try{
inbox = store.getFolder("INBOX");
inbox.open(Folder.READ_WRITE);
FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
Message[] messages = inbox.getMessages();
inbox.fetch(messages, profile);
//profile.add(UIDFolder.FetchProfileItem.UID);
System.out.println("Inbox Number of Message :" + messages.length);
for (int i = 0; i < messages.length; i++) {
System.out.println("The Email Number: " + (i+1));
if(messages[i].getFlags().contains(Flags.Flag.SEEN)){
continue;
}
String from = decodeText(messages[i].getFrom()[0].toString());
String subject = "";
InternetAddress ia = new InternetAddress(from);
System.out.println("FROM:" + ia.getPersonal()+'('+ia.getAddress()+')');
//标志邮件为已读,但是无效
messages[i].setFlag(Flags.Flag.SEEN, true);
//String pattern = "^([//S_//s|//:])*/";
String pattern = "//s|//:";
subject = messages[i].getSubject().replaceAll(pattern, "");
System.out.println("TITLE:" + messages[i].getSubject());
System.out.println("TITLE:" + subject);
//System.out.println("DATE:" + messages[i].getSentDate().toLocaleString());
if(messages[i].isMimeType("text/plain")){
//saveFile(attachpath + subject +".txt", messages[i].getContent().toString());
System.out.println(messages[i].getContentType());
if(subject.startsWith("=?gb?")){
subject = subject.replace("=?gb?", "=?GBK?");
subject = decodeText(subject);
}
saveFile(savepath + subject +".txt", messages[i].getInputStream());
System.out.println("/n=======================================");
continue;
}
Multipart mp = (Multipart)messages[i].getContent();
for(int j=0;j<mp.getCount();j++){
MimeBodyPart mbp = (MimeBodyPart)mp.getBodyPart(j);
System.out.println(mbp.getContentType());
if(mbp.getFileName()!=null){
saveFile(savepath + decodeText(mbp.getFileName()),mbp.getInputStream());
}else{
saveFile(savepath + subject+".html",mbp.getContent().toString());
}
}
System.out.println("/n=======================================");
}
inbox.close(true);
store.close();
session = null;
}catch(Exception e){
e.printStackTrace();
}
return true;
}
/**
* SimpleAuthenticator is used to do simple authentication
* when the SMTP server requires it.
*/
private class SMTPAuthenticator extends javax.mail.Authenticator{
public PasswordAuthentication getPasswordAuthentication(){
String username = USERNAME;
String password = PASSWORD;
return new PasswordAuthentication(username, password);
}
}
//保存附件
private void saveFile(String filename, InputStream stream)throws Exception {
FileOutputStream writer = new FileOutputStream(filename);
byte[] buf = new byte[4096];
int len = 0;
while ((len = stream.read(buf)) > 0)
{
writer.write(buf, 0, len);
}
writer.flush();
writer.close();
}
//将收到的邮件正文保存下来
private void saveFile(String filename,String content)throws Exception {
BufferedWriter out = new BufferedWriter(new FileWriter(filename));
content = content.replace("/n", "/r/n");
out.write(content);
out.flush();
out.close();
}
//从文件中获取邮件正文
private String readFromFile() {
String content = "";
String filepath = contentpath;
try {
String line;
BufferedReader in = new BufferedReader(new FileReader(filepath));
while((line = in.readLine()) != null){
content += line + "/n";
}
in.close();
} catch (Exception e) {
e.printStackTrace();
}
return content;
}
//添加附件名
public void attachfile(String fname){
file.addElement(fname);
}
//遍历目录以及所有子目录下的文件
public void attachfiles(String list){
File f = new File(list);
if(f.exists()==false){
System.out.println("the directory is not exist.");
}
File[] dir = f.listFiles();
for(int i=0;i<dir.length;i++){
if(dir[i].isDirectory()){
attachfiles(list+"/"+dir[i].getName());
//System.out.println(dir[i].getName());
}else{
if(dir[i].getName().endsWith("jpg") || dir[i].getName().endsWith("gif")){
//file.addElement(list +"/"+ dir[i].getName());
//System.out.println(dir[i].getName());
}
file.addElement(list +"/"+ dir[i].getName());
System.out.println(dir[i].getName());
}
}
}
//解码
private static String decodeText(String text) throws UnsupportedEncodingException {
if (text == null)
return null;
if (text.startsWith("=?GB") || text.startsWith("=?gb")){
text = MimeUtility.decodeText(text);
//text = new String(text.getBytes("gbk"),"gb2312");
}
else{
text = new String(text.getBytes("ISO8859_1"));
}
return text;
}
}
相关推荐
基于Javamail的邮件收发系统的设计与开发
基于JavaMail的邮件收发系统摘 要电子邮件在当今社会中扮演了一个很重要的角色。越来越多的人在使用它。而且用它的人数势必会继续增加。本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP协议和POP协议从底层进行开发,利用JavaMail API为收发邮件提供与协议无关的访问。SMTP(简单邮件传输协议)是专门用来发送邮件的。POP
javamail发件、收件(SSL连接)
2019独角兽企业重金招聘Python工程师标准>>> ...
javamail收取邮件(包括附件)
javamail 实例 获取pop3或者imap方式获取邮件信息,配置运行MailHelper即可.
JavaMail发送和接收邮件API(详解)
JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类。但它并没有包含在JDK中,而是作为JavaEE的一部分。厂商所提供的JavaMail服务程序可以有选择地实现某些邮件协议,常见的邮件协议包括:SMTP:简单邮件传输协议,用于发送电子邮件的传输协议;POP3:用于接收电子邮件的标准协议;IMAP:互联网消息协议,是POP3的替代协议。这三种协议都有对应SSL加密传输的协议,分别是SMTPS,POP3S和IMAPS。
面试篇 - LoRA(Low-Rank Adaptation) 原理
输出示例:trainable params: 262,144 || all params: 6,742,016,000 || trainable%: 0.0039。论文实验显示:零初始化 BB 可使初始损失与预训练模型相差不足0.1%,而非零初始化可能差50%+。若初始 ΔW≠0,模型可能立即偏离预训练学到的知识(如GPT-3突然忘记如何造句)。:如同汽车改装,先保持原厂配置(W),再逐步加装新部件(ΔW),避免直接飙车失控。:大模型的权重变化矩阵 ΔWΔW 通常是低秩的(少数主成分主导变化)。
macOS Jdk1.8安装(目前主流版本的jdk)
添加环境环境变量,类似于windows的高级设置中path配置的环境变量。查看 JAVA_HOME 目录。查看 JDK 版本信息。一直下一步安装就好了。在终端的根目录下运行。
java 未读邮件_使用带有POP3协议的javamail检索所有未读电子邮件
我试图访问我的Gmail帐户,并从中检索所有未读电子邮件的信息。我已经写了我的代码之后引用了很多链接。我给了几个链接供参考。要测试我的代码,我创建了一个Gmail帐户。因此,我从Gmail收到了4封邮件。我在检查邮件数后运行我的应用程序。这显示正确的结果。 4封未读邮件。正在显示所有信息(例如日期,发件人,内容,主题等)然后我登录到我的新帐户,阅读其中一封电子邮件并重新运行我的申请。现在未读消息的...
宇树智能人形机器人模块化腿部动力系统技术拆解
o电机防摔防护板(3.1.5.1)→端盖总成(3.1.5.2)→电机外壳(3.1.5.4)的冲击力传递路径;o散热风扇(3.1.3.1)推动冷风→大腿基座腔体→散热片组(3.1.5.7)→中空大腿杆排出;o防御专利:覆盖“关节热管理风道接口标准”、“抗冲击结构身份编码”;o大腿杆腔体(3.1.3.4)内置反平行四边形机构,避免连杆外露。:力传感器(3.1.8.4.2)仅部署于足端,缺失关节力矩反馈。:更换行星减速器(3.1.5.5)需拆解整个电机模块;o热量传导路径:电机定子→外壳→散热片组。
java mail 接收附件_JavaMail接收带有附件的邮件
package com.what21.network.mail;import java.io.File;import java.io.IOException;import java.util.Properties;import javax.mail.Address;import javax.mail.Folder;import javax.mail.Message;import javax.mai...
利用ArcMap实现遥感图像语义分割标注的完整流程解析
本文详细解析了利用ArcMap进行遥感图像语义分割标注的完整工作流。从工程创建、数据导入、SHP文件创建,到实战勾画地物、要素转栅格,再到最终的裁剪对齐,提供了每一步的关键操作与避坑指南。该方法特别适合处理大尺寸、带地理坐标的遥感影像,能高效产出精准对齐的图像-标签对,为后续深度学习模型训练奠定可靠的数据基础。
数字音频接口之I2S总线协议详解
1、SDATA,也就是串行数据信号,使用二进制传输数字信号。请注意数据的传输形式为补码的方式2、例如音频的采样率是8K,一s内存采样8K个点,一个点包含一个左声道,一个右声道,所以LRCK是8K,BCLK是2×采样频率×采样位数3、同时双向(TX和RX)音频流:串行数据同步移位到时钟信号SCK和LRCK。在SCK的下降沿将TX数据写入SDOUT引脚,并在SCK的上升沿从SDIN引脚读取RX数据。始终首先发送最高有效位(MSB);TX和RX均可在主模式和从模式下使用。
JavaMail学习笔记
JavaMail的基本概念:定义1. JavaMail是J2EE平台的一部分,是一个抽象的类组,使基于消息的系统得以实现。 The JavaMail API provides a platform-independent and protocol-independent framework to build mail and messaging applic
Go语言爬虫:chromedp 的详细使用
chromedp 是 Go 语言中无头浏览器自动化的终极利器。它能驱动真实的 Chrome 浏览器,处理 JavaScript 渲染、复杂交互和反爬虫机制
基于Java实现Javamail的邮件收发系统源码
基于Java实现Javamail的邮件收发系统源码 去发现同类优质开源项目:https://gitcode.com/ 此资源包含了基于Java语言,使用Javamail库实现的邮件收发系统的完整源代码。此系统不仅具备邮件收发的基本功能,还支持附件传输,用户界面友好,操作简便。 系统概述 本邮件收发系统提供以下功能: 收取并显示POP3邮件服务器上指定邮箱的邮件; 使用SMTP邮件服务器发送邮件;...
echarts 饼图(加载进度条动画效果)
1、外侧动画细线效果运动“custom”自定义系列中“renderItem”属性来实现,动态修改起始角度和终止角度。2、圆环使用" pie "类型添加两个data值来画百分比圆环,动态修改data中的值。
paddlehub无法安装,安装报错【Bug完美解决】
paddlehub无法安装,安装报错【Bug完美解决】 我们正在进行一个基于Python的项目开发,该项目需要集成PaddleHub,以利用其丰富的深度学习模型和工具。PaddleHub提供了一种简便的方式来使用预训练模型,以加速开发过程并提高模型效果。 现在paddlehub安装出现问题了,本文彻底解决paddlehub无法安装的问题。
java mail 收 附件_JavaMail中文附件处理(转载)(java 接收 发送 邮件)
//SendMail.javaimportjavax.mail. * ;importjavax.mail.internet.* ;importjava.util. * ;importjavax.activation. *;publicclassSendMail{publicstaticvoidsend(String customMailBoxAddress,String use...
计算机控制技术及应用
《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。
Java项目源码:基于Javamail的邮件收发系统
Java项目源码:基于Javamail的邮件收发系统 去发现同类优质开源项目:https://gitcode.com/ 此资源文件包含一个适合练手、课程设计或毕业设计的Java项目源码。该项目是基于Javamail的邮件收发系统,包含了系统源码、相关论文、开题报告以及答辩PPT,是一份非常完整的项目资料。 项目简介 本项目是一款基于Javamail的邮件收发系统,利用Java语言和Javamail...
廖雪峰Python教程[完整版]
廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白
lwip-2.0.3
lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。
Email 代码
package com.tempus.userCenter.utils; import java.util.Properties; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.apache.log4j.Logger; import
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
Java使用JavaMail收发Email电子邮件
使用JavaMail收发送电子邮件,包括带有附件和内嵌图片的邮件!
《SpringBoot篇》23.SpringBoot整合JavaMail实现发送邮件详解
非常简单有有趣,跟着弄一定能学会。 说明:想学习先了解一下JavaMail到底是什么。JavaMail用于处理电子邮件相关的编程接口,javaMail 是由Sun定义的一套收发电子邮件的API,它可以方便地执行一些常用的邮件传输,不同的厂商可以提供自己的实现类,但它并没有包含在jdk中,而是作为javaEE的一部分。学习邮件发送之前先了解3个概念,这些概念规范了邮件操作过程中的标准。
使用 JavaMail 收发邮件,解决中文附件问题
几天来一直在开发一个项目,其中一部分需要用 JavaMail 收发邮件,于是就在网上找了一些相关的源代码,最后经过整理和修改,终于好使了,希望能够给使用 JavaMail 收发邮件的朋友提供一个参考 J 使用 JavaMail 收发邮件只需要下载两个开源的 jar 文件, mail.jar 和 activation.jar, 这两个 jar 包可以很容易的在网上找到,这里就不提供下载链接了
java毕业设计——基于Java+Javamail的邮件收发系统设计与实现(毕业论文+程序源码)——邮件收发系统
本文介绍了Javamail邮件收发系统的开发背景,对国内外现有的多种成熟的电子邮件系统进行分析和比较,总结出它们的优缺点,对Javamail技术进行深入研究,提出并设计实现了基于Javamail的邮件收发系统。本系统利用SMTP协议和POP协议从底层进行开发,利用JavaMail API为收发邮件提供与协议无关的访问。SMTP(简单邮件传输协议)是专门用来发送邮件的。POP(邮局协议)是专门用于接收邮件的。JavaMail API是一种可选的、能用于读取、编写和发送电子消息的标准扩展包。
基于JavaMail的邮件收发系统
1111。
java mail 收 附件_使用 JavaMail 收发邮件,解决中文附件问题
几天来一直在开发一个项目,其中一部分需要用 JavaMail收发邮件,于是就在网上找了一些相关的源代码,最后经过整理和修改,终于好使了,希望能够给使用 JavaMail 收发邮件的朋友提供一个参考 J使用 JavaMail 收发邮件只需要下载两个开源的 jar 文件, mail.jar 和 activation.jar, 这两个 jar包可以很容易的在网上找到,这里就不提供下载链接了。下面是发送邮...
使用javaMail收邮件 支持附件下载
javaMail发送复杂邮件附件 使用javaMail收邮件主要有两种协议,一种是pop3,一种是imap。这两种协议都可以用来收邮件,但是在其中的处理上是有区别的。pop3是不支持判断邮件是否为已读的,也就是说你不能直接从收件箱里面取到未读邮件,这需要自己进行判断,然而imap就提供了这样的功能,使用imap时可以很轻松的判断该邮件是否为已读或未读或其他。 此外收件箱中的每一封
1081



被折叠的 条评论
为什么被折叠?



