今天纠结了一天的时间,使用pop3协议收取qq邮箱中邮件时,因为一个特别坑爹的问题重新写n次,最后发现是因为qq邮箱设置了独立邮箱密码,必须的用独立邮箱密码登陆才行,/(ㄒoㄒ)/~~!!!!

但今天干的活也不能白干,所以发出来记录一下代码。

  1. package com.lkb.thirdUtil.emailbank.test;
  2.  
  3. import java.util.Properties;
  4. import javax.mail.*;
  5. import javax.mail.internet.*;
  6.  
  7. public class MailExample {
  8.  
  9. public static void main (String args[]) throws Exception {
  10.  
  11. // Get system properties
  12. Properties props = System.getProperties();
  13.  
  14. // Setup mail server
  15. props.put("mail.pop3.host", "pop.qq.com");
  16. props.put("mail.pop3.port", "995");
  17. // Get session
  18. props.put("mail.smtp.auth", "true"); //这样才能通过验证
  19. props.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  20. props.put("mail.pop3.socketFactory.fallback", "false");
  21. props.setProperty("mail.pop3.socketFactory.port", "995");
  22.  
  23. MyAuthenticator myauth = new MyAuthenticator("*****@qq.com", "******");
  24. Session session = Session.getDefaultInstance(props, myauth);
  25. Store store = session.getStore("pop3");
  26. store.connect();
  27. //session.setDebug(true);
  28. System.out.println("成功!");
  29. Folder folder = store.getFolder("INBOX");
  30. // 只读
  31. folder.open(Folder.READ_ONLY);
  32. Message[] mess=folder.getMessages();
  33. for (Message message : mess) {
  34. System.out.println(message.getSubject());
  35. }
  36. }
  37. }

--------------------------------------------------------

  1. package com.lkb.thirdUtil.emailbank.test;
  2.  
  3. import javax.mail.PasswordAuthentication;
  4.  
  5. class MyAuthenticator
  6. extends javax.mail.Authenticator {
  7. private String strUser;
  8. private String strPwd;
  9. public MyAuthenticator(String user, String password) {
  10. this.strUser = user;
  11. this.strPwd = password;
  12. }
  13.  
  14. protected PasswordAuthentication getPasswordAuthentication() {
  15. return new PasswordAuthentication(strUser, strPwd);
  16. }
  17. }

IMAP形式:

  1. package com.lkb.thirdUtil.emailbank.test;
  2.  
  3. import java.io.UnsupportedEncodingException;
  4. import java.util.Properties;
  5. import javax.mail.Authenticator;
  6. import javax.mail.Folder;
  7. import javax.mail.MessagingException;
  8. import javax.mail.PasswordAuthentication;
  9. import javax.mail.Session;
  10. import javax.mail.Store;
  11. public class ImapProtocolImpl extends Authenticator
  12. {
  13. private Session session;
  14. private PasswordAuthentication authentication;
  15.  
  16. public ImapProtocolImpl(String username, String password)
  17. {
  18. Properties props = new Properties();
  19. props.setProperty("mail.store.protocol", "imap");
  20. props.setProperty("mail.imap.host", "imap.qq.com");
  21. props.setProperty("mail.imap.port", "993");
  22. props.put("mail.imap.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
  23. props.put("mail.imap.socketFactory.fallback", "false");
  24. props.setProperty("mail.imap.auth.login.disable", "true");
  25. props.setProperty("mail.imap.auth.plain.disable","true");
  26.  
  27. authentication = new PasswordAuthentication(username, password);
  28. session = Session.getInstance(props, this);
  29. session.setDebug(true);
  30. }
  31.  
  32. @Override
  33. public PasswordAuthentication getPasswordAuthentication()
  34. {
  35. return this.authentication;
  36. }
  37.  
  38. public void connect()
  39. {
  40. try
  41. {
  42. Store store = session.getStore();
  43. store.connect();
  44. Folder root = store.getDefaultFolder();
  45. Folder inbox = root.getFolder("inbox");
  46. inbox.open(Folder.READ_WRITE);
  47. System.out.println(inbox.getMessageCount());
  48. }
  49. catch (MessagingException e)
  50. {
  51. try
  52. {
  53. byte[] buf = e.getMessage().getBytes("ISO-8859-1");
  54. System.out.println(new String(buf, "GBK"));
  55. }
  56. catch (UnsupportedEncodingException e1)
  57. {
  58. e1.printStackTrace();
  59. }
  60. throw new RuntimeException("登录失败", e);
  61. }
  62. }
  63. }

POP3_收取QQ邮箱邮件的问题的更多相关文章

  1. php 发送QQ邮箱邮件

    这是我的源码比较简陋 https://www.lanzous.com/i2l7h8f 感谢 https://www.cnblogs.com/woider/p/6980456.html 下载phpmai ...

  2. win10自带邮箱如何使用?win10自带邮箱如何同步qq邮箱邮件?

    win10自带邮箱如何使用? 相信很多小伙伴在登录win10自带的邮箱登录QQ邮箱时,显示同步失败或者登录超时,但又找不到相关的资料,下面是我自己邮箱的操作流程,小伙伴可以尝试一下,有什么问题留言即可 ...

  3. 技术笔记:Indy IdSMTP支持腾讯QQ邮箱邮件发送

    1.腾讯QQ邮箱的授权码问题 因为腾讯邮箱折腾了个底朝天,其要搞什么授权码登录第三方客户端,否则会报这个错误: 'Error: 请使用授权码登录.详情请看: http://service.mail.q ...

  4. Python3+smtplib+poplib+imaplib实现发送和收取邮件(以qq邮箱为例)

    一.说明 1.1 程序说明 (1)smtp是邮件发送协议:pop和imap都是邮件接收协议,两者的区别通常的说法是imap的操作会同步到邮箱服务器而pop不会,表现上我也不是很清楚 (2)本程序实现使 ...

  5. 规划收发你的邮件,使用qq邮箱接收阿里云企业邮邮件

    使用qq邮箱接收阿里企业邮 首先管理员开通企业邮后会发来激活短信 根据短信提示打开https://qiye.aliyun.com企业邮登陆地址 使用短信提供的密码登陆邮箱 首次登陆时会让我们重设密码 ...

  6. outlook创建收信规则,将收到的所有邮件,转发到qq邮箱,然后删除

    因为outlook默认只有400M的空间. 使用企业邮箱的时候,很快就满了. 本来是打算在qq邮箱中,添加其他邮箱来收取的. http://service.mail.qq.com/cgi-bin/he ...

  7. java mail使用qq邮箱发邮件的配置方法

    最近自己折腾了下Java中利用mai发送QQ邮件 1.QQ邮箱设置 1.1 进去QQ邮箱-->设置-->账号-->进行设置如下图 2.foxmail设置(由于我要利用它收邮件) 2. ...

  8. Python编写邮件群发(qq邮箱)

    #电子邮件操作 import poplib import smtplib from email.header import decode_header from email.mime.text imp ...

  9. C#发送Email邮件(实例:QQ邮箱和Gmail邮箱)

    下面用到的邮件账号和密码都不是真实的,需要测试就换成自己的邮件账号. 需要引用: using System.Net.Mail; using System.Text; using System.Net; ...

随机推荐

  1. [整理]JS中的状态机

    /*StateMachine*/ var StateMachine = (function(){ function StateMachine(opts){ this.current = opts.in ...

  2. AngularJS入门基础——控制器

    AngularJS中的控制器是一个函数,用来向视图的作用域添加额外的功能.我们用它来给作用域对象设置初始状态,并添加自定义行为. AngularJS同其他JavaScript框架最主要的一个区别就是, ...

  3. 【转】教你何时开启水果机上的HDR拍照

    原址:http://news.mydrivers.com/1/175/175922.htm 苹果在iOS 4.1操作系统中为iPhone 4增加了一项有趣的新功能:HDR拍照.虽然目前市场上支持HDR ...

  4. MFS - MooseFS 文件系统

    MFSMooseFS 文件系统 可以实现RAID 功能:节约成本 实现在线扩展:是一种半分布式文件系统. 一.MFS文件系统的组成 1.mfsmaster 元数据服务器. 在整个体系中负责管理管理文件 ...

  5. 第5月第15天 php email

    1. <?php require_once "Mail.php"; $from = "luckyeggs<fuping304@163.com>" ...

  6. linux 查看有哪些service

    一.利用进程来查看命令里 ps -aux | grep xxx 是查看某个进程或者服务是否存在.二.利用chkconfig配置工具chkconfig --list 可以列出所有的服务在各个runlev ...

  7. QTP图片验证/图片比较/二进制流对比法

    图片验证主要是文件对比,其中我们可以利用二进制的方法读取图片信息,然后进行对比,达到对比的效果,本例子利用fso对象的文件流的方法实现,代码如下: Public Function CompareFil ...

  8. centos6.5环境DNS-本地DNS主从服务器bind的搭建

    centos6.5环境DNS-本地DNS主从服务器bind的搭建 在上一篇博客中我已经搭建好了一个本地DNS服务器,能够实现正向反向解析,那么我们只需要加入一台从DNS服务器即可完成,我们来开始配置主 ...

  9. Coursera台大机器学习技法课程笔记08-Adaptive Boosting

    将分类器组合的过程中,将重点逐渐聚焦于那些被错分的样本点,这种做法背后的数学原因,就是这讲的内容. 在用bootstraping生成g的过程中,由于抽样对不同的g就生成了不同的u,接下来就是不断的调整 ...

  10. 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?

    使用TCP协议连续传输大量数据时,是否会丢包,应如何避免? 比如发送文件.记得有人提过可能会发生什么堆栈溢出.怎样避免呢?是不是可以收到数据后发送确认包,收到确认包后再继续发送.或是发送方发送了一些数 ...