`
you_java
  • 浏览: 96513 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java mail(接收邮件)

阅读更多

 

package com.util.mail;

import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

/**
 * 用于收取Gmail邮件
 * 
 * @author Winter Lau
 */
public class GmailFetch {

	public static void main(String argv[]) throws Exception {

		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

		// Get a Properties object
		Properties props = System.getProperties();
		props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
		props.setProperty("mail.pop3.socketFactory.fallback", "false");
		props.setProperty("mail.pop3.port", "995");
		props.setProperty("mail.pop3.socketFactory.port", "995");

		// 以下步骤跟一般的JavaMail操作相同
		Session session = Session.getDefaultInstance(props, null);

		// 请将红色部分对应替换成你的邮箱帐号和密码
		URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,
				"xxx@gmail.com", "***");
		Store store = session.getStore(urln);
		Folder inbox = null;
			store.connect();
			inbox = store.getFolder("INBOX");
			inbox.open(Folder.READ_ONLY);
			FetchProfile profile = new FetchProfile();
			profile.add(FetchProfile.Item.ENVELOPE);
			Message[] messages = inbox.getMessages();
			inbox.fetch(messages, profile);
			System.out.println("收件箱的邮件数:" + messages.length);
			for (int i = 0; i < messages.length; i++) {
				// 邮件发送者
				String from = decodeText(messages[i].getFrom()[0].toString());
				InternetAddress ia = new InternetAddress(from);
				System.out.println("FROM:" + ia.getPersonal() + '('
						+ ia.getAddress() + ')');
				// 邮件标题
				System.out.println("TITLE:" + messages[i].getSubject());
				// 邮件大小
				System.out.println("SIZE:" + messages[i].getSize());
				// 邮件发送时间
				System.out.println("DATE:" + messages[i].getSentDate());
				
				System.out.println("------++++++++------");
			}
			
			inbox.close(false);
			store.close();
	}

	protected static String decodeText(String text)
			throws UnsupportedEncodingException {
		if (text == null)
			return null;
		if (text.startsWith("=?GB") || text.startsWith("=?gb"))
			text = MimeUtility.decodeText(text);
		else
			text = new String(text.getBytes("ISO8859_1"));
		return text;
	}

}

 

 

package com.util.mail;

import java.io.UnsupportedEncodingException;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

/**
 * 用于收取163邮件
 * 
 * @author Winter Lau
 */
public class Fetch163 {

	public static void main(String argv[]) throws Exception {

		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";

		// Get a Properties object
		Properties props = System.getProperties();
		props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
		props.setProperty("mail.pop3.socketFactory.fallback", "false");
		props.setProperty("mail.pop3.port", "995");
		props.setProperty("mail.pop3.socketFactory.port", "110");

		// 以下步骤跟一般的JavaMail操作相同
		Session session = Session.getDefaultInstance(props, null);

		// 请将红色部分对应替换成你的邮箱帐号和密码
		URLName urln = new URLName("pop3", "pop.163.com", 110, null,
				"xxx@163.com", "***");
		Store store = session.getStore(urln);
		Folder inbox = null;
			store.connect();
			inbox = store.getFolder("INBOX");
			inbox.open(Folder.READ_ONLY);
			FetchProfile profile = new FetchProfile();
			profile.add(FetchProfile.Item.ENVELOPE);
			Message[] messages = inbox.getMessages();
			inbox.fetch(messages, profile);
			System.out.println("收件箱的邮件数:" + messages.length);
			for (int i = 0; i < messages.length; i++) {
				// 邮件发送者
				String from = decodeText(messages[i].getFrom()[0].toString());
				InternetAddress ia = new InternetAddress(from);
				System.out.println("FROM:" + ia.getPersonal() + '('
						+ ia.getAddress() + ')');
				// 邮件标题
				System.out.println("TITLE:" + messages[i].getSubject());
				// 邮件大小
				System.out.println("SIZE:" + messages[i].getSize());
				// 邮件发送时间
				System.out.println("DATE:" + messages[i].getSentDate());
				
				System.out.println("------++++++++------");
			}
			
			inbox.close(false);
			store.close();
	}

	protected static String decodeText(String text)
			throws UnsupportedEncodingException {
		if (text == null)
			return null;
		if (text.startsWith("=?GB") || text.startsWith("=?gb"))
			text = MimeUtility.decodeText(text);
		else
			text = new String(text.getBytes("ISO8859_1"),"GBK");
		return text;
	}

}

package com.util.mail;

import java.security.Security;
import java.util.Properties;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.UIDFolder;
import javax.mail.URLName;
import javax.mail.internet.MimeMessage;
import com.sun.mail.pop3.POP3Folder;

/**
 * UID速度要比messageID快好多倍,messageID下载的时候需要解析header里面头文件,所以费时
 * UID接收邮件
 */
public class ReceiveMail {

	public static void main(String[] args) throws Exception {
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		String host = "pop.gmail.com";
		String username = "xxx@gmail.com";
		String password = "***";
		Properties props = new Properties();
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
		props.setProperty("mail.pop3.socketFactory.fallback", "false");
		props.setProperty("mail.pop3.port", "995");
		props.setProperty("mail.pop3.socketFactory.port", "995");
		Session session = Session.getDefaultInstance(props, null);
		
		Store store = session.getStore("pop3");
		store.connect(host, username, password);
		Folder folder = store.getFolder("INBOX");
		folder.open(Folder.READ_ONLY);
		FetchProfile profile = new FetchProfile();
		profile.add(UIDFolder.FetchProfileItem.UID);
		profile.add(FetchProfile.Item.ENVELOPE);
		if (folder instanceof POP3Folder) {
			POP3Folder inbox = (POP3Folder) folder;
			Message message[] = inbox.getMessages();
			System.out.println("Messages's length: " + message.length);
			for (int i = 0; i < message.length; i++) {
				MimeMessage mimeMessage = (MimeMessage) message[i];
				String uid = inbox.getUID(mimeMessage);
				System.out.println("uid=" + uid);
				int UnreadMessageCount = inbox.getUnreadMessageCount();
				System.out.println("UnreadMessageCount=" + UnreadMessageCount);
				int NewMessageCount = inbox.getNewMessageCount();
				System.out.println("NewMessageCount=" + NewMessageCount);
				URLName urlName = inbox.getURLName();
				System.out.println("urlName=" + urlName);

			}
		}
	}
}
 
package com.util.mail;

import java.security.Security;
import java.util.Properties;
import javax.mail.FetchProfile;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.UIDFolder;
import javax.mail.URLName;
import javax.mail.internet.MimeMessage;
import com.sun.mail.pop3.POP3Folder;

/**
 * UID速度要比messageID快好多倍,messageID下载的时候需要解析header里面头文件,所以费时
 * UID接收邮件
 */
public class ReceiveMail {

	public static void main(String[] args) throws Exception {
		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		String host = "pop.gmail.com";
		String username = "xxx@gmail.com";
		String password = "***";
		Properties props = new Properties();
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY);
		props.setProperty("mail.pop3.socketFactory.fallback", "false");
		props.setProperty("mail.pop3.port", "995");
		props.setProperty("mail.pop3.socketFactory.port", "995");
		Session session = Session.getDefaultInstance(props, null);
		
		Store store = session.getStore("pop3");
		store.connect(host, username, password);
		Folder folder = store.getFolder("INBOX");
		folder.open(Folder.READ_ONLY);
		FetchProfile profile = new FetchProfile();
		profile.add(UIDFolder.FetchProfileItem.UID);
		profile.add(FetchProfile.Item.ENVELOPE);
		if (folder instanceof POP3Folder) {
			POP3Folder inbox = (POP3Folder) folder;
			Message message[] = inbox.getMessages();
			System.out.println("Messages's length: " + message.length);
			for (int i = 0; i < message.length; i++) {
				MimeMessage mimeMessage = (MimeMessage) message[i];
				String uid = inbox.getUID(mimeMessage);
				System.out.println("uid=" + uid);
				int UnreadMessageCount = inbox.getUnreadMessageCount();
				System.out.println("UnreadMessageCount=" + UnreadMessageCount);
				int NewMessageCount = inbox.getNewMessageCount();
				System.out.println("NewMessageCount=" + NewMessageCount);
				URLName urlName = inbox.getURLName();
				System.out.println("urlName=" + urlName);

			}
		}
	}
}
 

分享到:
评论
1 楼 wilsonchen 2013-11-19  
楼主,谢谢分享。
请教一个问题,如何做到既分页又排序呢?

相关推荐

    javaMail发送邮件 发送成功 收不到邮件 或收到邮件无主题无收件人乱码

    x-java-content-handler=com.sun.mail.handlers.multipart_mixed"); mc.addMailcap("message/rfc822;; x-java-content-handler=com.sun.mail.handlers.message_rfc822"); CommandMap.setDefaultCommandMap(mc); ...

    Java Mail 发布邮件

    如果你需要接收邮件,你可以使用`Store`接口连接到邮件服务器,并通过`Folder`对象来读取、搜索和操作邮件。 博客链接(https://gaojianqi6.iteye.com/blog/1164218)可能会提供更详细的步骤、示例代码和注意事项,...

    JAVA_Mail_邮件_发送_接收_抄送_密送_附件

    接收邮件,可删除邮件 发送邮件 * 功能齐全,可抄送,密送;可带附件 * 你需要修改:你发件用的邮箱需要开启SMTP服务,这个邮箱的用户名就是:SMTP认证用-登录用户名, * 这个邮箱的密码就是:SMTP认证用-登录...

    Java通过Exchange协议发送和接收邮件

    首先,JavaMail API是一个开源的Java库,它允许开发人员编写能够发送和接收邮件的应用程序。然而,JavaMail API并不直接支持Exchange服务器,因此在与Exchange服务器交互时,我们需要借助EWS Java API。微软官方提供...

    Java查询OutLook邮件代码

    它包括了 javax.mail 和 javax.mail.internet 包,这两个包提供了发送、接收邮件以及解析邮件内容的类和接口。例如,`Session` 类用于设置邮件服务器的配置,`Store` 类用于连接邮箱并获取邮件,`Folder` 类用于操作...

    java mail发邮件

    `mail.jar` 是Java Mail的主要库文件,包含了发送和接收邮件所需的所有类和接口。它支持多种邮件协议,如SMTP(简单邮件传输协议)用于发送邮件,POP3(邮局协议)和IMAP(因特网消息访问协议)用于接收邮件。这个库...

    java收发邮件完整版

    接收邮件的过程相对复杂,通常涉及以下步骤: 1. **创建会话**:与发送邮件类似,需要创建一个`Session`对象,但这里可能需要设置IMAP或POP3服务器的属性。 2. **获取存储**:根据所选协议,使用`Store.connect()`...

    java定时收取邮件

    Java Mail API是Java平台上的一个标准API,它允许开发者创建、发送和接收电子邮件。下面我们将深入探讨这个主题。 首先,邮件可配置意味着我们可以根据需求灵活地设置邮件服务器的相关参数,例如SMTP服务器地址、...

    java mail 发送邮件

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。在Java应用程序中,我们通常使用JavaMail API来实现邮件的自动化操作,比如发送带有附件的邮件、群发邮件等。下面将...

    java mail 收发邮件Demo源码

    接收邮件通常使用`Store`接口,根据不同的邮件协议(如POP3或IMAP)连接到邮件服务器。登录后,可以获取`Folder`对象,打开并遍历其中的`Message`。对于每条消息,可以提取发件人、收件人、主题、日期等信息,并...

    java mail(邮件发送实例)

    Java Mail 是一个用于处理电子邮件的开源API,它允许Java开发者在应用程序中实现发送、接收和操作邮件的功能。在这个实例中,我们将深入探讨如何使用Java Mail API来发送邮件,特别是涉及中文处理和HTML格式的邮件。...

    Java Mail邮件发送源码下载

    Java Mail邮件发送是Java开发中常见的一项功能,用于在应用程序中发送电子邮件。Java Mail API提供了一个标准的接口,使得开发者可以方便地实现SMTP(简单邮件传输协议)和其他邮件协议的功能。下面将详细介绍Java ...

    java mail 发送邮件代码与架包

    这个API提供了广泛的协议支持,包括SMTP(简单邮件传输协议)用于发送邮件,POP3和IMAP4用于接收邮件。在Java Mail中,你可以设置各种参数,如发件人、收件人、主题、邮件内容等,还可以添加附件、设置抄送和密送等...

    java mail接收发送

    对于接收邮件,你可以使用类似的方法连接到POP3或IMAP服务器,然后打开并遍历`Folder`中的`Message`对象。 在实际应用中,你可能需要处理各种异常,包括网络问题、认证失败、邮件服务器策略等。同时,为了提高性能...

    用java mail发邮件源码,支持多种邮局,支持单发和群发

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。这个源码可能包含了一套完整的解决方案,可以与多种邮局(如Gmail, Yahoo, Hotmail等)进行交互,并且支持单个收件人和...

    java mail 发送QQ邮件

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者通过编程方式发送、接收和管理邮件。在Java中,使用Java Mail API发送QQ邮件是常见的需求,尤其对于自动化通知或者服务端消息传递非常实用。以下是对这个...

    Java Mail 发送邮件

    - **IMAP**: 同样用于接收邮件,但支持邮件的远程存储与访问,允许用户在服务器上管理邮件。 ##### 2.2 Java Mail API 架构 Java Mail API 的架构主要分为以下几个层次: - **Session**: 会话层,提供了一个配置上...

    使用 java mail 发送邮件

    Java Mail 是一个用于处理电子邮件的开源API,它允许开发者在Java应用程序中发送和接收邮件。在Android平台上,尽管原生的Android SDK提供了简单的Email Intent来发送邮件,但当需要更复杂的邮件功能,如附件、HTML...

    java mail发送邮件(源代码+注释)

    Java Mail 是一个强大的开源API,用于处理电子邮件的发送和接收。这个API允许开发者在Java应用程序中集成邮件功能,包括SMTP(简单邮件传输协议)和POP3(邮局协议第三版)等邮件服务协议。本教程将详细介绍如何使用...

    基于Java-Mail的电子邮件收发系统毕业设计.doc

    Java-Mail是Java平台下的邮件处理API,提供了发送和接收电子邮件的功能。Java-Mail API由三个主要部分组成:javax.mail、javax.mail.internet和com.sun.mail.util。javax.mail包提供了基本的邮件处理功能,javax....

Global site tag (gtag.js) - Google Analytics