以前玩Net的时候自己花了差不多一个暑假的时间来实现一个收取Pop3邮件的组件
,所以记忆尤为深刻~呵呵
今天无意看见Apache下的一个子项目Commons,其用途是专门做一些常用的开发组件包
比如DBPool什么的
详细信息可以看这里
http://jakarta.apache.org/commons/index.html
其中有个Net包,里面包含来支持多达如下几种协议的组件:
Supported protocols are:
- FTP
- NNTP
- SMTP
- POP3
- Telnet
- TFTP
- Finger
- Whois
- rexec/rcmd/rlogin
- Time (rdate) and Daytime
- Echo
- Discard
- NTP/SNTP
呵呵!真强~~
其中就包含Pop3邮件收取协议
于是开工哦!~
首先先下一个这个包回来附加到Eclipse项目中
下包可以在这里
http://mirror.vmmatrix.net/apache/jakarta/commons/net/binaries/commons-net-1.4.1.zip
然后新建一个Demo.java类,敲下如下代码:就可以收信了~简单,当然你还要按照你的地区再编一次码,否则中文显示为
package Test;
import java.io.Reader;
import java.io.BufferedReader;
import org.apache.commons.net.pop3.POP3Client;
import org.apache.commons.net.pop3.POP3MessageInfo;
public class Demo {
public static void main(String[] args) {
POP3Client pop3 = new POP3Client();
try {
pop3.setDefaultPort(110);
pop3.connect("pop.qq.com");
// 我测试的是QQ邮件~
// 输入你的QQ号作为油箱名称 QQ密码作为邮箱密码
if (pop3.login("油箱名称", "邮箱密码")) {
POP3MessageInfo[] p3m = pop3.listMessages();
System.out.println("您一共有" + p3m.length + "封信件");
for (POP3MessageInfo obj : p3m) {
int id = obj.number;// 获得信件在服务器端的唯一编码
Reader red = pop3.retrieveMessage(id);
BufferedReader br = new BufferedReader(red);
while (br.readLine() != null) {
System.out.println(br.readLine());
}
}
}
pop3.logout();
pop3.disconnect();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("失败");
e.printStackTrace();
}
}
}