Java邮件收发,以及获取收件箱和发件箱 自测可用

Java发送邮件 使用javaMail 1.5.6发送邮件 协议smtp

smtp地址 smtp.域名 端口SSL 465/994 非SSL25
实体类

*** 邮件消息体* @author lyp* @date 2020年3月11日 上午10:53:13 * @see [相关类/方法]*/
public class MessageBody {public enum MessageType{MAIL, SMS}/** 邮件主题 */private String subject;/** 邮件发件人 */private String fromUser;// 短信则为手机号码,邮件则为邮箱private List<String> receiveUsers;/** 邮件抄送人 */private List<String> copyToUsers;/** 邮件密送人 */private List<String> bccUsers;// 邮件短信内容private String content;// 定时发送用private DateTime dateTime;// 消息类型, 默认为邮箱private MessageType messageType = MessageType.MAIL;// 公司名称private String companyName;// 附件private Map<String, File> attachments;private Map<String, MultipartFile> multipartFileMap;public List<Integer> getSendIds() {return sendIds;}public void setSendIds(List<Integer> sendIds) {this.sendIds = sendIds;}private List<Integer> sendIds;public Map<String, MultipartFile> getMultipartFileMap() {return multipartFileMap;}public void setMultipartFileMap(Map<String, MultipartFile> multipartFileMap) {this.multipartFileMap = multipartFileMap;}public List<String> getReceiveUsers() {return receiveUsers;}public void setReceiveUsers(List<String> receiveUsers) {this.receiveUsers = receiveUsers;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public DateTime getDateTime() {return dateTime;}public void setDateTime(DateTime dateTime) {this.dateTime = dateTime;}public MessageType getMessageType() {return messageType;}public void setMessageType(MessageType messageType) {this.messageType = messageType;}public String getCompanyName() {return companyName;}public void setCompanyName(String companyName) {this.companyName = companyName;}public String getSubject() {return subject;}public void setSubject(String subject) {this.subject = subject;}public String getFromUser() {return fromUser;}public void setFromUser(String fromUser) {this.fromUser = fromUser;}public List<String> getCopyToUsers() {return copyToUsers;}public void setCopyToUsers(List<String> copyToUsers) {this.copyToUsers = copyToUsers;}public List<String> getBccUsers() {return bccUsers;}public void setBccUsers(List<String> bccUsers) {this.bccUsers = bccUsers;}public Map<String, File> getAttachments() {return attachments;}public void setAttachments(Map<String, File> attachments) {this.attachments = attachments;}}
JavaMailSenderImpl sender = new JavaMailSenderImpl();sender.setHost(emailPO.getSmtp());  //设置smtp地址sender.setPassword(emailPO.getPassword());  //邮箱授权密码sender.setPort(emailPO.getSmtpPort());   //smtp端口  465/994sender.setUsername(emailPO.getEmail()); //邮箱Properties properties = new Properties(); properties.put("mail.smtp.auth", true); //开启授权认证MailSSLSocketFactory sf = null; //开启ssl加密方式链接try {sf = new MailSSLSocketFactory();} catch (GeneralSecurityException e) {LOGGER.error("failed to init MailSSLSocketFactory,err:{}", e);throw new IllegalArgumentException(e);}sf.setTrustAllHosts(true);properties.put("mail.smtp.ssl.enable", "true");properties.put("mail.smtp.ssl.socketFactory", sf);sender.setJavaMailProperties(properties);LOGGER.info("mail message:{}", message);mailSenderService.run(sender,message);
public class MailSender {/** 邮件发送器 */private JavaMailSender mailSender;/** 邮件消息 */private MessageBody mailMessage;/** 日志记录器 */private static final Logger LOGGER = LoggerFactory.getLogger(MailSender.class);public MailSender(JavaMailSenderImpl mailSender, MessageBody mailMessage){this.mailSender = mailSender;this.mailMessage = mailMessage;}@Overridepublic void run(JavaMailSenderImpl mailSender, MessageBody mailMessage) {if (null != mailMessage) {LOGGER.info("mailSender:{}", mailSender);MimeMessage mimeMsg = mailSender.createMimeMessage();try {// 设置true,表示支持附件MimeMessageHelper msgHelper = new MimeMessageHelper(mimeMsg, true, "UTF-8");msgHelper.setValidateAddresses(true);msgHelper.setFrom(mailMessage.getFromUser(), mailMessage.getCompanyName());msgHelper.setSubject(mailMessage.getSubject());String[] receiveUsers = new String[mailMessage.getReceiveUsers().size()];//设置收件人msgHelper.setTo(mailMessage.getReceiveUsers().toArray(receiveUsers));//设置内容  ,第二个参数支持html格式msgHelper.setText(mailMessage.getContent(), true);// 设置邮件抄送人if (CollectionUtils.isNotEmpty(mailMessage.getCopyToUsers())) {String[] copyToUsers = new String[mailMessage.getCopyToUsers().size()];msgHelper.setCc(mailMessage.getCopyToUsers().toArray(copyToUsers));}// 设置邮件密送人if (CollectionUtils.isNotEmpty(mailMessage.getBccUsers())) {String[] bccUsers = new String[mailMessage.getBccUsers().size()];msgHelper.setBcc(mailMessage.getBccUsers().toArray(bccUsers));}// 添加附件if (null != mailMessage.getAttachments() && mailMessage.getAttachments().size() > 0) {Set<Entry<String, File>> it = mailMessage.getAttachments().entrySet();for (Entry<String, File> attachment : it) {msgHelper.addAttachment(attachment.getKey(), attachment.getValue());}}LOGGER.info("sending mail message begin:{}", msgHelper);mailSender.send(mimeMsg);LOGGER.info("send mail message end.");} catch (Exception e) {LOGGER.error("Send mail failed. Error message : {}", e.getMessage());}}}
}

Java Mail 获取收件箱 使用pop3协议

Java Mail 获取发件箱 使用imap协议

POP3协议 地址pop.域名 ssl端口号995 非ssl端口号110
IMAP协议 地址imap.域名 ssl端口号993 非ssl端口号143
这里使用的是非ssl端口号

/*** 有一封邮件就需要建立一个ReciveMail对象*/
public class ReciveMail {private MimeMessage mimeMessage = null;private final String dateformat = "yyyy-MM-dd HH:mm:ss"; //默认的日前显示格式private String saveAttachPath; //附件下载后的存放目录private String host;   private int port;      //收件服务器  pop3端口private String file;private String username;   //邮箱账户private String password;   //授权的密码private String popHost;   //pop3的hostprivate StringBuffer bodytext = new StringBuffer();//存放邮件内容private String content;public ReciveMail() {}public ReciveMail(MimeMessage mimeMessage) {this.mimeMessage = mimeMessage;}/*** 获得发件人的地址和姓名*/public String getFrom() throws Exception {InternetAddress address[] = (InternetAddress[]) mimeMessage.getFrom();String from = address[0].getAddress();if (from == null)from = "";String personal = address[0].getPersonal();if (personal == null)personal = "";String fromaddr = personal + "<" + from + ">";return fromaddr;}/*** 获得邮件的收件人,抄送,和密送的地址和姓名,根据所传递的参数的不同 "to"----收件人 "cc"---抄送人地址 "bcc"---密送人地址*/public String getMailAddress(String type) throws Exception {String mailaddr = "";String addtype = type.toUpperCase();InternetAddress[] address = null;if (addtype.equals("TO") || addtype.equals("CC") || addtype.equals("BCC")) {if (addtype.equals("TO")) {address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.TO);} else if (addtype.equals("CC")) {address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.CC);} else {address = (InternetAddress[]) mimeMessage.getRecipients(Message.RecipientType.BCC);}if (address != null) {for (int i = 0; i < address.length; i++) {String email = address[i].getAddress();if (email == null)email = "";else {email = MimeUtility.decodeText(email);}String personal = address[i].getPersonal();if (personal == null)personal = "";else {personal = MimeUtility.decodeText(personal);}String compositeto = personal + "<" + email + ">";mailaddr += "," + compositeto;}mailaddr = mailaddr.substring(1);}} else {throw new Exception("Error emailaddr type!");}return mailaddr;}/*** 获得邮件主题*/public String getSubject() throws MessagingException {String subject = "";try {subject = MimeUtility.decodeText(mimeMessage.getSubject());if (subject == null)subject = "";} catch (Exception exce) {}return subject;}/*** 判断此邮件是否需要回执,如果需要回执返回"true",否则返回"false"*/public boolean getReplySign() throws MessagingException {boolean replysign = false;String needreply[] = mimeMessage.getHeader("Disposition-Notification-To");if (needreply != null) {replysign = true;}return replysign;}/*** 获得此邮件的Message-ID*/public String getMessageId() throws MessagingException {return mimeMessage.getMessageID();}/*** 【判断此邮件是否已读,如果未读返回返回false,反之返回true】*/public boolean isNew() throws MessagingException {boolean isnew = false;Flags flags = ((Message) mimeMessage).getFlags();Flags.Flag[] flag = flags.getSystemFlags();System.out.println("flags's length: " + flag.length);for (int i = 0; i < flag.length; i++) {if (flag[i] == Flags.Flag.SEEN) {isnew = true;System.out.println("seen Message.......");break;}}return isnew;}/*** 获得邮件发送日期*/public String getSentDate() throws Exception {Date sentdate = mimeMessage.getSentDate();SimpleDateFormat format = new SimpleDateFormat(dateformat);return format.format(sentdate);}public MimeMessage getMimeMessage() {return mimeMessage;}public void setMimeMessage(MimeMessage mimeMessage) {this.mimeMessage = mimeMessage;}public StringBuffer getBodytext() {return bodytext;}public void setBodytext(StringBuffer bodytext) {this.bodytext = bodytext;}public String getPopHost() {return popHost;}public void setPopHost(String popHost) {this.popHost = popHost;}public String getHost() {return host;}public void setHost(String host) {this.host = host;}public int getPort() {return port;}public void setPort(int port) {this.port = port;}public String getFile() {return file;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public void setFile(String file) {this.file = file;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}/*** 【设置附件存放路径】*/public void setAttachPath(String attachpath) {this.saveAttachPath = attachpath;}/*** 获得邮件正文内容*/public String getBodyText() {return bodytext.toString();}/*** 【获得附件存放路径】*/public String getAttachPath() {return saveAttachPath;}
}
public class GetMailService {private StringBuffer bodytext = new StringBuffer();//存放邮件内容public GetMailService() {}private static GetMailService reciveMailUtil;/**** @return*/public static GetMailService getInstance() {if (reciveMailUtil == null) {synchronized (GetMailService.class) {if (reciveMailUtil == null) {reciveMailUtil = new GetMailService();}}}return reciveMailUtil;}/*** 解析邮件,把得到的邮件内容保存到一个StringBuffer对象中,解析邮件 主要是根据MimeType类型的不同执行不同的操作,一步一步的解析*/public void getMailContent(Part part, ReciveMail reciveMail) throws Exception {String contenttype = part.getContentType();int nameindex = contenttype.indexOf("name");boolean conname = false;if (nameindex != -1) {conname = true;}System.out.println("CONTENTTYPE: " + contenttype);if (part.isMimeType("text/plain") && !conname) {bodytext.append((String) part.getContent());reciveMail.setBodytext(bodytext);} else if (part.isMimeType("text/html") && !conname) {bodytext.append((String) part.getContent());reciveMail.setBodytext(bodytext);} else if (part.isMimeType("multipart/*")) {Multipart multipart = (Multipart) part.getContent();int counts = multipart.getCount();for (int i = 0; i < counts; i++) {getMailContent(multipart.getBodyPart(i), reciveMail);}} else if (part.isMimeType("message/rfc822")) {getMailContent((Part) part.getContent(), reciveMail);} else {}}/*** 判断此邮件是否包含附件*/public boolean isContainAttach(Part part) throws Exception {boolean attachflag = false;String contentType = part.getContentType();if (part.isMimeType("multipart/*")) {Multipart mp = (Multipart) part.getContent();for (int i = 0; i < mp.getCount(); i++) {BodyPart mpart = mp.getBodyPart(i);String disposition = mpart.getDisposition();if ((disposition != null)&& ((disposition.equals(Part.ATTACHMENT)) || (disposition.equals(Part.INLINE)))) {attachflag = true;}else if (mpart.isMimeType("multipart/*")) {attachflag = isContainAttach((Part) mpart);} else {String contype = mpart.getContentType();if (contype.toLowerCase().indexOf("application") != -1){attachflag = true;}if (contype.toLowerCase().indexOf("name") != -1){attachflag = true;}}}} else if (part.isMimeType("message/rfc822")) {attachflag = isContainAttach((Part) part.getContent());}return attachflag;}/*** 【保存附件】*/public void saveAttachMent(Part part, ReciveMail reciveMail) throws Exception {String fileName = "";if (part.isMimeType("multipart/*")) {Multipart mp = (Multipart) part.getContent();for (int i = 0; i < mp.getCount(); i++) {BodyPart mpart = mp.getBodyPart(i);String disposition = mpart.getDisposition();if ((disposition != null)&& ((disposition.equals(Part.ATTACHMENT)) || (disposition.equals(Part.INLINE)))) {fileName = mpart.getFileName();if (fileName.toLowerCase().indexOf("gb2312") != -1) {fileName = MimeUtility.decodeText(fileName);}saveFile(fileName, mpart.getInputStream(), reciveMail);} else if (mpart.isMimeType("multipart/*")) {saveAttachMent(mpart, reciveMail);} else {fileName = mpart.getFileName();if ((fileName != null)&& (fileName.toLowerCase().indexOf("GB2312") != -1)) {fileName = MimeUtility.decodeText(fileName);saveFile(fileName, mpart.getInputStream(), reciveMail);}}}} else if (part.isMimeType("message/rfc822")) {saveAttachMent((Part) part.getContent(), reciveMail);}}/*** 【真正的保存附件到指定目录里】*/private void saveFile(String fileName, InputStream in, ReciveMail reciveMail) throws Exception {String osName = System.getProperty("os.name");String storedir = reciveMail.getAttachPath();String separator = "";if (osName == null) {osName = "";}if (osName.toLowerCase().indexOf("win") != -1) {separator = "\\";if (storedir == null || storedir.equals("")) {storedir = "c:\\tmp";}} else {separator = "/";storedir = "/tmp";}File storefile = new File(storedir + separator + fileName);System.out.println("storefile's path: " + storefile.toString());for (int i = 0; storefile.exists(); i++) {storefile = new File(storedir + separator + fileName + i);}BufferedOutputStream bos = null;BufferedInputStream bis = null;try {bos = new BufferedOutputStream(new FileOutputStream(storefile));bis = new BufferedInputStream(in);int c;while ((c = bis.read()) != -1) {bos.write(c);bos.flush();}} catch (Exception exception) {exception.printStackTrace();throw new Exception("文件保存失败!");} finally {bos.close();bis.close();}}/*** @description: 测试方法* @param pmm* @param fileSavePath* @author: lyp,* @date: 2020/11/13 10:11* @return:*/public static void reciveMail(ReciveMail pmm,String fileSavePath) throws Exception {HashMap IAM = new HashMap();//带上IMAP ID信息,由key和value组成,例如name,version,vendor,support-email等。IAM.put("name","myname");IAM.put("version","1.0.0");IAM.put("vendor","myclient");IAM.put("support-email","testmail@test.com");Properties props = System.getProperties();/*props.put("mail.smtp.host", pmm.getHost());//收件不需要这个*/props.put("mail.smtp.auth", "true");Session session = Session.getDefaultInstance(props, null);URLName urln = new URLName("imap", pmm.getPopHost(), pmm.getPort(), pmm.getFile(), pmm.getUsername(), pmm.getPassword());IMAPStore store = (IMAPStore) session.getStore(urln);store.connect();store.id(IAM);Folder folder = store.getFolder("INBOX");folder.open(Folder.READ_ONLY);Message message[] = folder.getMessages();System.out.println("Messages's length: " + message.length);for (int i = 0; i < message.length; i++) {System.out.println("==========第" + (i + 1) + "份邮件============");pmm = new ReciveMail((MimeMessage) message[i]);System.out.println(" 主题: " + pmm.getSubject());System.out.println(" 发送日期: " + pmm.getSentDate());System.out.println(" 是否需要回执: " + pmm.getReplySign());System.out.println(" 是否已读: " + pmm.isNew());System.out.println(" 是否包含文件: " + getInstance().isContainAttach((Part) message[i]));System.out.println(" 谁发送的: " + pmm.getFrom());System.out.println(" 发送给谁的: " + pmm.getMailAddress("to"));System.out.println(" 抄送: " + pmm.getMailAddress("cc"));System.out.println(" 密件抄送: " + pmm.getMailAddress("bcc"));System.out.println("ID: " + pmm.getMessageId());// 获得邮件内容===============getInstance().getMailContent((Part) message[i], pmm);String content = pmm.getBodyText().substring(pmm.getBodyText().indexOf("<"), pmm.getBodyText().lastIndexOf(">") + 1);System.out.println(" 内容: \r\n" + content);pmm.setAttachPath(fileSavePath);getInstance().saveAttachMent((Part) message[i], pmm);}}/*** @description: 获取收件箱* @param pmm* @author: lyp,* @date: 2020/11/12 17:35* @return: {@link List< ReciveMail>}*/public static List<ReciveMail> getInboxMail(ReciveMail pmm) throws Exception {Properties props = System.getProperties();props.put("mail.smtp.auth", "true");Session session = Session.getDefaultInstance(props, null);URLName urln = new URLName("pop3", pmm.getPopHost(), pmm.getPort(), pmm.getFile(), pmm.getUsername(), pmm.getPassword());Store store = session.getStore(urln);store.connect();Folder folder = store.getFolder("INBOX");folder.open(Folder.READ_ONLY);Message message[] = folder.getMessages();System.out.println("Messages's length: " + message.length);List<ReciveMail> list = new ArrayList<>();setMailList(message, list);return list;}/*** @description: 获取指定时间段收件箱* @param pmm* @author: lyp,* @date: 2020/11/12 17:35* @return: {@link List< ReciveMail>}*/public static List<ReciveMail> getInboxMail(ReciveMail pmm, Date startTime,Date endTime) throws Exception {Properties props = System.getProperties();/*props.put("mail.smtp.host", pmm.getHost());//收件不需要这个*/props.put("mail.smtp.auth", "true");Session session = Session.getDefaultInstance(props, null);URLName urln = new URLName("pop3", pmm.getPopHost(), pmm.getPort(), pmm.getFile(), pmm.getUsername(), pmm.getPassword());Store store = session.getStore(urln);store.connect();Folder folder = store.getFolder("INBOX");folder.open(Folder.READ_ONLY);// 指定发送时间SearchTerm geTerm = new SentDateTerm(ComparisonTerm.GE, startTime);SearchTerm leTerm = new SentDateTerm(ComparisonTerm.LE, endTime);SearchTerm andTerm = new AndTerm(geTerm, leTerm);Message message[] = folder.search(andTerm);System.out.println("Messages's length: " + message.length);List<ReciveMail> list = new ArrayList<>();setMailList(message, list);return list;}/*** @description: 获取发件箱* @param pmm* @author: lyp,* @date: 2020/11/12 17:35* @return: {@link List< ReciveMail>}*/public static List<ReciveMail> getSentMail(ReciveMail pmm) throws Exception {HashMap IAM = new HashMap();//带上IMAP ID信息,由key和value组成,例如name,version,vendor,support-email等。IAM.put("name","myname");IAM.put("version","1.0.0");IAM.put("vendor","myclient");IAM.put("support-email","testmail@test.com");Properties props = System.getProperties();/*props.put("mail.smtp.host", pmm.getHost());//收件不需要这个*/props.put("mail.smtp.auth", "true");Session session = Session.getDefaultInstance(props, null);URLName urln = new URLName("imap", pmm.getPopHost(), pmm.getPort(), pmm.getFile(), pmm.getUsername(), pmm.getPassword());IMAPStore store = (IMAPStore) session.getStore(urln);store.connect();store.id(IAM);// 网易与阿里云发件箱为已发送Folder folder = store.getFolder("已发送");if (folder == null) {// QQ发件箱为Sent Messagesfolder = store.getFolder("Sent Messages");}folder.open(Folder.READ_ONLY);Message message[] = folder.getMessages();System.out.println("Messages's length: " + message.length);List<ReciveMail> list = new ArrayList<>();setMailList(message, list);return list;}public static String transferChinese(String strText) {try {strText = MimeUtility.encodeText(new String(strText.getBytes(),"GB2312"), "GB2312", "B");} catch (Exception e) {e.printStackTrace();}return strText;}private static void setMailList(Message[] message, List<ReciveMail> list) throws Exception {ReciveMail pmm;for (int i = 0; i < message.length; i++) {System.out.println("==========第" + (i + 1) + "份邮件============");pmm = new ReciveMail((MimeMessage) message[i]);getInstance().getMailContent((Part) message[i], pmm);String content = pmm.getBodyText().substring(pmm.getBodyText().indexOf("<"), pmm.getBodyText().lastIndexOf(">") + 1);pmm.setContent(content);list.add(pmm);}list.sort(new Comparator<ReciveMail>() {@Overridepublic int compare(ReciveMail o1, ReciveMail o2) {try {return o2.getMimeMessage().getSentDate().compareTo(o1.getMimeMessage().getSentDate());} catch (MessagingException e) {e.printStackTrace();}return 1;}});}/*** PraseMimeMessage类测试*/public static void main(String args[]) throws Exception {ReciveMail pmm = new ReciveMail();int port = “”;String file = null;String popHost = "";String username = "";String password = "";pmm.setPopHost(popHost);pmm.setPort(port);pmm.setFile(file);pmm.setUsername(username);pmm.setPassword(password);reciveMail(pmm,"");//记得设置文件保存路径}
}

使用pop3协议获取到的邮箱文件夹Folder中只有收件箱INBOX,所以获取发件箱以及其他的邮箱需使用IMAP协议获取,获取到的文件夹名称可以看我另一个博客中有写到,其中网易使用IMAP协议会提示不安全的登录,这是网易为了用户帐号信息安全,系统要求您的客户端表明相关“身份”信息才可以允许连接,需要验证身份信息加一个ID信息.

网易链接地址:出现不安全登录帮助原因

Java邮件收发,以及获取收件箱和发件箱 自测可用 使用JavaMail相关推荐

  1. JavaMail怎样获取收件箱,发件箱,垃圾箱等等的全名

    JavaMail怎样获取收件箱,发件箱,垃圾箱等等的全名?方法如下 try {store = session.getStore("imap");store.connect(addr ...

  2. 如何迁移foxmail中邮件账户下所有邮件(收件箱、发件箱等)

    工作中经常需要发送邮件,在迁移重要数据时,需要对foxmail邮箱账户下的所有邮件进行备份 操作方法: 假如我的foxmail安装路径为:D:\worksoft\Foxmail 7.2 邮箱账户为:a ...

  3. 收件箱和发件箱 表设计_在收件箱中播放不错

    收件箱和发件箱 表设计 photo :Nieve44/Luz 照片:Nieve44 / Luz Coding email can be a tricky business. Once you get ...

  4. iPhone设置163邮箱 收件服务器和发件服务器填写内容

    iPhone设置163邮箱 收件服务器和发件服务器填写内容 收件服务器 主机名: imap.163.com 用户名: 邮箱不加@163.com(比如我的邮箱是xianyu@163.com,用户名就填x ...

  5. java获取阿里邮箱收件箱、发件箱、草稿箱、已删除邮件、垃圾邮件

    通过下面两句代码即可获得该邮箱下所有文件夹名称 Folder defaultFolder = store.getDefaultFolder(); Folder[] allFolder = defaul ...

  6. java 解压文件_java实现解压zip文件,(亲测可用)!!!!!!

    项目结构: Util.java内容: package com.cfets.demo; import java.io.File; import java.io.FileOutputStream; imp ...

  7. JavaMail 收邮件 草稿箱 发件箱 IMAP 技巧

    @ 使用JavaMail收取邮件,可以通过IMAP协议收取草稿箱.发件箱等文件夹的邮件. Folder defaultFolder  =  store.getDefaultFolder();  // ...

  8. 苹果7如何设置手机邮箱服务器,iphone7 126邮箱如何设定发件服务器

    满意答案 yuan842119 2016.10.31 采纳率:59%    等级:7 已帮助:4514人 1.首先打开手机,进入"设置"中的"邮件.通讯录.日历" ...

  9. javaMail获取收件箱邮件之javax.mail.FolderNotFoundException

    情况一:通过pop3获取邮件 javax.mail.FolderNotFoundException: folder is not INBOXat com.sun.mail.pop3.POP3Folde ...

最新文章

  1. 非计算机专业的人要如何学python?
  2. SRIO学习(五)——SerDes Macro(串行解串宏)
  3. 还在担心工作被AI取代?不如掌握这门硬实力,抢占职场发展机遇
  4. kail Linux 安装Parallels Tools
  5. Ransomware CryptXXX Analysis
  6. JDK 14中的常规,安全和确定性外部内存访问
  7. 记录您的里程和社区运行情况:Java EE 7真实体验
  8. okhttp 工具类_日语学习工具推荐,小白必备!
  9. Playing with Permutations(CF-252D)
  10. mysql启动成功但是没有进程_zabbix_server表面启动成功,但是没有进程
  11. 黑马微服务项目乐优商城全套
  12. 苏大强患的“老年痴呆”,这家初创公司想提前15年检测
  13. python 爬取taptap热门榜
  14. 电路交换与分组交换技术
  15. Be For Web
  16. vscode 是干什么用的_vscode这个软件有什么用
  17. 第四章 函数式编程(Lambda表达式Stream流)
  18. linux 光标切换快捷键,光标操作快捷键,光标快捷键
  19. 13个MySQL送命题!大厂必看
  20. RangingTool 覆盖物文案国际化

热门文章

  1. Signal tap 逻辑分析仪使用教程
  2. 使用PowerShell获取Trustedinstaller权限
  3. 基于MFC的通讯录管理系统设计与实现
  4. 微信支付接口--支付成功的回调--超详细Demo
  5. php如何写微信支付回调函数,php对微信支付回调处理的方法(合集)
  6. 深度学习基础之正向传播与反向传播
  7. c++ 之动态库与静态库区别
  8. 阿里maven镜像无法使用 导入jar失败 创建项目失败 Could not transfer metadata org. apache. maven. plugi ns:
  9. 第十四届蓝桥杯三月真题刷题训练——第 10 天
  10. 数据挖掘考试(大纲)