javamail 发送QQ邮件

  今天写了一个javamail Demo准备用于我的Android程序

  我用junit和mian方法都可以顺利发出邮件

  后来把它加入android程序中就出现了异常NoClassDefFoundError

  我第一反应就是jar包问题 反复排查jar包 没有发现问题 最奇怪的地方是

  (我调用main方法执行程序是可以成功发送邮件的,就是在Android 程序中调用会有这个异常)

  最后把additionnal.jar 引入项目 这时异常改变了

  NetworkOnMainThreadException

  然后把这段程序放入线程中执行 这时就不再有问题

  总结:

  NoClassDefFoundError 虽然编译时没用到某jar包 但是运行时可能会需要

  NetworkOnMainThreadException 如果在主线程中请求网络操作,将会抛出此异常

  new Thread(new Runnable(){

  @Override

  public void run() {

  //..

  }

  }).start();

  

 

javamail 发送QQ邮件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用JavaMail下载QQ发送的附件,您需要进行以下步骤: 1. 首先,您需要获得QQ的POP3和SMTP服务器地址。您可以在QQ邮箱的设置中找到这些信息。 2. 然后,您需要使用JavaMail API连接到QQ邮箱的POP3服务器。这将允许您检索邮件和附件。以下是一个示例代码片段,演示如何连接到QQ邮箱的POP3服务器: ``` Properties props = new Properties(); props.setProperty("mail.store.protocol", "pop3"); props.setProperty("mail.pop3.host", "pop.qq.com"); props.setProperty("mail.pop3.port", "995"); props.setProperty("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); Session session = Session.getDefaultInstance(props); Store store = session.getStore(); store.connect("username@qq.com", "password"); Folder inbox = store.getFolder("INBOX"); inbox.open(Folder.READ_ONLY); Message[] messages = inbox.getMessages(); ``` 3. 接下来,您需要从邮件中提取附件。以下是一个示例代码片段,演示如何提取邮件中的附件: ``` for (Message message : messages) { Multipart multipart = (Multipart) message.getContent(); for (int i = 0; i < multipart.getCount(); i++) { BodyPart bodyPart = multipart.getBodyPart(i); if (Part.ATTACHMENT.equalsIgnoreCase(bodyPart.getDisposition())) { InputStream inputStream = bodyPart.getInputStream(); // 将 inputStream 写入文件或进行其他操作 } } } ``` 请注意,此示例代码仅提供参考。具体实现可能因您的具体情况而异。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值