分享一个收邮件的类,演示Iterable的用法,实现自己的Iterator, 该类使用非常简单,如下:
Properties mailPr = new Properties();
mailPr.setProperty("Pop3Host","pop3.sina.com.cn");
mailPr.setProperty("User",” ××××@sina.com.cn“);
mailPr.setProperty("Password", “×××××”);
mr = new MailReceiver(mailPr);
mr = new MailReceiver(mailPr);
try {
mr.read();
//遍历所有邮件
for (Iterator<Message> iter = mr.iterator(); iter.hasNext();) {
Message msg = iter.next();
//msg 就是读出的邮件
}
} catch (MessagingException e1) {
e1.printStackTrace();
return;
}
主要包含了两个类,如下,
1 . MailReceiver.java
package zhang.stony.mail;
import java.util.Iterator;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Store;
/**
* @author Stony Zhang
* @E-Mail stonyz@live.com
* @QQ 55279427
* @Createdate 2009-9-5
*
* @Copyright the author, If you want to use the code, you must keep the
* author's information.
*/
public class MailReceiver implements Iterable<Message> {
private Session session;
MailSetting mSetting;
public MailReceiver(Properties p) {
mSetting = new MailSetting(p);
final String username = mSetting.getUser();
final String password = mSetting.getPassword();
Properties props = new Properties();
props.put("mail.smtp.host", mSetting.getPop3Host());
props.put("mail.smtp.auth", "true");
session = Session.getDefaultInstance(props, new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
Folder folder = null;
Message[] message;
Store store;
public void read() throws MessagingException {
store = session.getStore("pop3");
store.connect(mSetting.getPop3Host(), mSetting.getUser(), mSetting
.getPassword());
folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
message = folder.getMessages();
}
public void close() throws MessagingException {
if (folder != null) {
try {
folder.close(true);
} catch (Exception e) {
}
store.close();
}
}
public Iterator<Message> iterator() {
return new Iter();
}
private class Iter implements Iterator<Message> {
int currrent_msg_index=0;
Message curMsg;
public boolean hasNext() {
return currrent_msg_index <= message.length - 1;
}
public Message next() {
curMsg = message[currrent_msg_index++];
return curMsg;
}
public void remove() {
try {
curMsg.setFlag(Flags.Flag.DELETED, true);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
}
2. MailSetting.java
package zhang.stony.mail;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
/**
* @author Stony Zhang
* @E-Mail stonyz@live.com
* @QQ 55279427
* @Createdate 2009-9-5
*
* @Copyright, everyone can use the code freely, but you must keep the author's information.
*/
public class MailSetting {
private String smtpHost;
private String pop3Host;
private String user ;
private String password;
public MailSetting(String configFile){
try {
InputStream in = new FileInputStream(configFile);
Properties prop = new Properties();
prop.load(in);
setPropertiesAttri(prop);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public MailSetting(Properties pr){
setPropertiesAttri(pr);
}
public MailSetting(String host,String u,String p){
this.smtpHost=host;
this.user=u;
this.password=p;
}
private void setPropertiesAttri(Properties prop) {
try {
// String conf = AppContest.getStartupPath() + "config/MailSetting.properties";
this.setSmtpHost(prop.getProperty("SmtpHost"));
this.setPop3Host(prop.getProperty("Pop3Host").toString());
this.setUser(prop.getProperty("User").toString());
this.setPassword(prop.getProperty("Password").toString());
} catch (Exception ex) {
System.err.println("ex1 in MailSetting:" + ex.toString());
}
}
public String getSmtpHost() {
return smtpHost;
}
public void setSmtpHost(String smtpHost) {
this.smtpHost = smtpHost;
}
public String getPop3Host() {
return pop3Host;
}
public void setPop3Host(String pop3Host) {
this.pop3Host = pop3Host;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
关于JavaMail发送邮件,请参阅 JavaMail发送html格式的邮件
分享到:
相关推荐
亲测可用! 还存在的BUG: 1.有的邮件会出现乱码,有待修正; 2.qq邮箱只能接收今天收到的邮件;
简单的邮件发送是一个很简单的邮件发送程序,能够发送普通的文本内容; 3.邮件发送高级编程是一个高级的邮件发动程序,能够设定smtp的验证,同时也能够发送附件,还能够设定各种编码以及数据加密。
使用Socket结合SMTP/POP3邮件协议发送和接收邮件
C#接收邮件 C#接收邮件 C#接收邮件
发送邮件程序将创建一个新建发送体,设定信息和附件的编码方式,增加附件,如果要发送附件,设定发送者地址,增加一个自定义头,测试用,选择服务器登陆方式,向下拉框中增加一些选项,打开选择附件的对话框等。
vc实现发送和接收邮件 包含pop3 SMTP协议
一个简单邮件接收案例 CDO.Message CDO.Configuration
基于朴素贝叶斯的垃圾邮件分类 对垃圾邮件的分类有较好的效果 达到99%
PHP收邮件receiveMail类
在本实战教程中,我们将使用Java编程语言创建一个简单的电子邮件过滤器。这个电子邮件过滤器将允许用户收取、分类和过滤电子邮件,以便更有效地管理电子邮件通信。 以下是本实战教程的主要内容: 项目概述 准备...
邮件接收类,接收网络邮件......可恶的字数
word2vec-spam-filter:使用单词向量来分类垃圾邮件
一个简单的C实现pop3接收邮件,可删除邮件
PHP收邮件receiveMail类
javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码 查看debug 邮件处理过程发现邮件头没有编译, 内容是base64编码,所以邮箱收不到或者收到的是base64编码后的一堆乱码,
一个简易的用JSP实现邮件的接收与发送的程序,主要使用JavaMail组件,(1)创建一封邮件。(2)创建一个Session对象,以进行用户鉴别,控制对邮箱的存取,发送操作。(3)向一个收件箱列表中的邮箱发送邮件。(4)从...
这种非交互式的通信,加速了信息的交流及数据传送,它是—个简易、快速的方法。通过连接全世界的Internet,实现各类信号的传送、接收、存贮等处理,将邮件送到世界的各个角落。到目前为止,可以说电子邮件是Internet资源...
增加一个收件人地址 增加多个收件人地址 邮件操作 错误消息反馈 将字符串编码为Base64字符串 将Base64字符串解码为普通字符串 得到上传附件的文件流 SMTP回应代码哈希表 发送SMTP命令 接收SMTP服务器回应 与服务器...
今天小编就为大家分享一篇关于spring boot定时任务接收邮件并且存储附件的方法讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
C#邮件接收案例源码(最低分分享)