java imap收邮件_Android javaMail使用imap协议接收邮件

本文演示了如何使用JavaMail库在Android设备上通过IMAP协议连接到QQ邮箱并接收邮件。首先设置SSL工厂和相关属性,然后建立会话,连接到邮箱服务器并列出所有文件夹。接着,程序打开收件箱,获取邮件数量,并打印前5封邮件的发件人、主题和发送日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package cn.com;

import java.security.Security;

import java.util.Date;

import java.util.Properties;

import javax.mail.Folder;

import javax.mail.Message;

import javax.mail.MessagingException;

import javax.mail.NoSuchProviderException;

import javax.mail.Session;

import com.sun.mail.imap.IMAPFolder;

import com.sun.mail.imap.IMAPStore;public classImapFetchMail {public static voidmain(String[] args) {

String host= "imap.qq.com";int port = 993;

String username= "316301857@qq.com";

String password= "dengzhiyuanaiyuer";

final String SSL_FACTORY= "javax.net.ssl.SSLSocketFactory";

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());/*Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

这里有一个错我是这么解决的(Windows -> Preferences,Java/Compiler/Errors/Warnings->

Deprecated and restricted API, Forbidden reference (access rules),原始设定为Error修改为Warning)*/Properties props=System.getProperties();

props.setProperty("mail.imap.socketFactory.class", SSL_FACTORY);

props.setProperty("mail.imap.socketFactory.port","993");

props.setProperty("mail.store.protocol","imap");

props.setProperty("mail.imap.host", host);

props.setProperty("mail.imap.port", "993");

props.setProperty("mail.imap.auth.login.disable", "true");

Session session= Session.getDefaultInstance(props,null);

session.setDebug(false);

IMAPFolder folder= null;

IMAPStore store=null;try{

store=(IMAPStore)session.getStore("imap"); //使用imap会话机制,连接服务器

store.connect(host,port,username,password);

folder=(IMAPFolder)store.getFolder("Sent Messages"); //收件箱

Folder defaultFolder=store.getDefaultFolder();

Folder[] allFolder=defaultFolder.list();for (int i = 0; i < allFolder.length; i++) {

System.out.println("这个是服务器中的文件夹="+allFolder[i].getFullName());

}//使用只读方式打开收件箱

folder.open(Folder.READ_WRITE);int size =folder.getMessageCount();

System.out.println("这里是打印的条数=="+size);

Message[] mess=folder.getMessages();//Message message = folder.getMessage(size);

for (int i = 0; i <5; i++) {

Stringfrom = mess[i].getFrom()[0].toString();

String subject=mess[i].getSubject();

Date date=mess[i].getSentDate();

System.out.println("From:" + from);

System.out.println("Subject:" +subject);

System.out.println("Date:" +date);

}/*String from = message.getFrom()[0].toString();

String subject = message.getSubject();

Date date = message.getSentDate();*/

/*BufferedReader br = new BufferedReader(new InputStreamReader(System.in));*/}catch(NoSuchProviderException e) {

e.printStackTrace();

}catch(MessagingException e) {

e.printStackTrace();

}finally{try{if (folder != null) {

folder.close(false);

}if (store != null) {

store.close();

}

}catch(MessagingException e) {

e.printStackTrace();

}

}

System.out.println("接收完毕!");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值