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

写程序用pop3收取gmail的邮件

阅读更多

入口参数:<o:p></o:p>

       用户名 / 密码<o:p></o:p>

做一个线程,每15分钟检查一次邮箱,收取邮箱的邮件,并解码后将标题显示出来<o:p></o:p>

l        请写出程序<o:p></o:p>

(提示:gmailpop3使用SSL方式,网上有完整可运行的源程序。注意是每15分钟,不是隔15分钟)

解题思路:到http://mail.google.com/  上注册一个gmail的新邮件  <o:p></o:p>

用户名:sydxide<o:p></o:p>

密码:852475012<o:p></o:p>

选择Settings Forwarding and POP<o:p></o:p>

POP Download:选择archivegmails copy<o:p></o:p>

源代码清单:<o:p></o:p>

Test.java 测试方法<o:p></o:p>

MailTimerTask.java读取邮件的标题的名称实现定时任务计划<o:p></o:p>

 

<o:p></o:p>
分享到:
评论
2 楼 sydxide2006 2007-09-28  
import java.util.*;    
   
public class Test{    
        
    public static void main(String[] args)throws Exception{    
            
        MailTimerTask task=new MailTimerTask();    
        Timer mailTimer=new Timer();    
        //mailTimer.schedule(task,2000,15*60*1000);
        mailTimer.schedule(task,2000,1*60*1000);    
    }    
}    
   
1 楼 sydxide2006 2007-09-28  
import java.util.*;
import java.security.*;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.MimeUtility;
import java.lang.RuntimeException;

public class MailTimerTask extends TimerTask {

	private static Store store = null;

	static String gmailname = "sydxide@gmail.com";

	static String gmailpassword = "852475012";
	/** 
	 *静态初始化模块
	 *保证后台只存在一个Store 连接 
	 */
	static {
		try {

			connect(gmailname, gmailpassword);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/** 
	 * 任务计划的执行方法
	 */
	public void run() {
		try {
			System.out.println("正在读取邮箱");

			this.printNewMails(this.getNewMails(gmailname, gmailpassword));

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	/** 
	 * 取得邮件的连接
	 * @param mailName
	 * @param mailPassword
	 * @throws Exception
	 */
	public static void connect(String mailName, String mailPassword)
			throws Exception {

		Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
		final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
		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");
		Session session = Session.getDefaultInstance(props, null);
		URLName urln = new URLName("pop3", "pop.gmail.com", 995, null,
				mailName, mailPassword);
		store = session.getStore(urln);
		store.connect();
	}

	/**
	 * 得到新的邮件列表
	 * @param mailName
	 * @param mailPassword
	 * @return
	 * @throws Exception
	 */
	public Message[] getNewMails(String mailName, String mailPassword)
			throws Exception {

		//当Store实例没有存在连接时    
		if (store.isConnected()) {

			connect(mailName, mailPassword);

		}

		Folder inbox = store.getFolder("INBOX");
		inbox.open(Folder.READ_ONLY);
		FetchProfile profile = new FetchProfile();
		profile.add(FetchProfile.Item.ENVELOPE);

		//假定存在没有阅读的邮件为新邮件    
		if (inbox.getUnreadMessageCount() > 0) {

			int fetchCount = inbox.getMessageCount()
					- inbox.getUnreadMessageCount();

			if (fetchCount == 0) {
				return inbox.getMessages();
			}
			Message[] messages = inbox.getMessages(1, 2);

			return messages;
		} else {

			System.out.println("不存在新邮件");
			throw new RuntimeException("不存在新邮件");
		}

	}

	/** 
	 * 设置邮件编码和打印邮件的标题
	 * @param msgs
	 * @throws Exception
	 */
	public void printNewMails(Message[] msgs) throws Exception {
		Message msg = null;
		for (int i = 0; i < msgs.length; i++) {
			msg = msgs[i];
			String text = msg.getSubject();

			if (text == null)
				System.out.println("该邮件无题");
			else if (text.startsWith("=GBK") || text.startsWith("=gb2312"))
				text = MimeUtility.decodeText(text);
			else
				text = new String(text.getBytes("gb2312"));

			System.out.println("--" + text);

		}
	}
}

相关推荐

    Qt pop3接收邮件并下载附件程序

    在本文中,我们将深入探讨如何使用Qt库中的POP3功能来实现自动登录邮箱、接收邮件以及下载附件。Qt是一个跨平台的应用程序开发框架,广泛应用于C++编程,它提供了丰富的功能,包括网络通信模块,使得我们可以方便地...

    JavaMail收发Gmail邮件

    在使用JavaMail进行Gmail邮件的收发时,需要注意几个关键点: 1. **SSL加密**: 为了确保数据的安全传输,通常会使用SSL加密技术。 2. **Gmail的SMTP和POP3设置**: - SMTP服务器地址: smtp.gmail.com - SMTP端口: ...

    indy用发送、收取gmai邮件

    Indy是Delphi编程环境中用于网络通信的一个强大的组件库,它提供了多种...以上就是使用Indy在Delphi中与Gmail服务交互,实现邮件发送和收取的基本过程。实际开发时,可能还需要根据具体需求进行更复杂的定制和优化。

    52电子邮件接收程序.rar_电子邮件接_电子邮件接收_邮件_邮件 接收_邮件接收

    2. **邮件收取**:通过IMAP或POP3协议,程序定期检查邮件服务器,将新邮件下载到本地设备,让用户离线时也能查看邮件。 3. **邮件分类与管理**:程序通常提供收件箱、发件箱、草稿箱和垃圾邮件箱等功能,帮助用户...

    某公司java笔试题.(超难).doc

    6. **使用POP3收取Gmail邮件**: - **POP3** 是一种邮件接收协议,用于从邮件服务器下载邮件。 - `javax.mail`包提供了对POP3的支持,可以用来连接Gmail的POP3服务器,收取邮件,并解码显示邮件标题。 以上就是...

    笔试JSP2.doc

    可以使用 JavaMail API 来使用 POP3 收取 Gmail 邮件。 编写文件上传 JavaBean 可以使用 Apache Commons FileUpload 库来编写文件上传 JavaBean。 SMTP 和 POP3 的中文含义 SMTP(Simple Mail Transfer Protocol...

    因特网提供的服务.pptx

    当邮件发送时,发件人的邮件发送程序将邮件发送至发件人邮件服务器,然后通过SMTP协议传递到收件人邮件服务器,最后由收件人使用邮件阅读程序通过POP3协议收取邮件。如果收件人地址无效,邮件会退回给发件人。 电子...

    .net 收发邮件

    在.NET框架中,收发电子邮件是一项常见的任务,用于企业级应用程序和各种自动化流程。这篇文章将深入探讨.NET中如何实现邮件的发送与接收,主要关注LumiSoft.Net库和Web服务的使用。 首先,让我们了解基本的.NET...

    JavaMail_简易教程

    - **GmailFetch收取Gmail邮件**:一个专门针对Gmail邮件收取的示例程序。 以上是对JavaMail简易教程的主要知识点总结,通过掌握这些内容,开发者可以利用JavaMail API高效地开发出功能强大的邮件应用程序。

    msmtp源程序实现了嵌入式消息的发送,并结合mutt壳能量实现了电子邮件的发送和接收.zip

    尽管它的界面朴素,但功能强大,支持IMAP、POP3协议,用于收取邮件,同时也支持通过SMTP发送邮件。`mutt` 提供了丰富的定制选项,包括快捷键绑定、邮件过滤规则和签名设置等,使得用户可以根据自己的需求调整界面和...

    foxmail6邮件自动收发工具

    通过配置这些协议,用户可以连接到各种邮件服务提供商,例如Gmail、Yahoo Mail、Outlook等,实现邮件的自动收取和发送。 在自动收发设置中,用户可以设定定期检查新邮件的时间间隔,如每5分钟、10分钟或自定义时间...

    中文版Linux桌面操作系统初级教程8电子邮件.pdf

    收取邮件:Kontact会连接到你的邮件服务器,下载新邮件到本地进行查看。你可以通过点击收件箱或刷新按钮来获取最新邮件。 阅读邮件:邮件列表显示在主界面中,点击邮件主题即可打开阅读。邮件内容可以被滚动浏览,...

    Java邮件发送

    需要注意的是,某些邮箱服务商(如Gmail)可能会要求你开启“不够安全的应用”的访问权限,以允许Java应用程序通过SMTP发送邮件。 邮件发送过程中可能遇到的问题包括:网络连接问题、认证失败、邮件格式错误等。...

    邮件接发工具(小巧,绿色,功能齐全,能接-发附件,能显示超邮).rar

    1. **邮件收发**:支持多种邮件协议,如POP3、IMAP4和SMTP,允许用户连接到各种邮箱服务提供商,如Gmail、Yahoo、Outlook等,进行邮件的收取和发送。 2. **附件管理**:用户可以轻松添加、查看和管理邮件附件,无论...

    pmailreader.rar

    1. **邮件收发**:PIMailReader支持POP3和IMAP协议,允许用户连接到各种电子邮件服务商,如Gmail、Yahoo、Outlook等,自动收取新邮件,并可设置规则对邮件进行分类和过滤。 2. **多账户管理**:用户可以在一个界面...

    公司招聘异地笔试题.doc

    本文介绍了四个与IT相关的知识点:Spring与Hibernate的整合配置、根据XML Schema生成XML文档、模拟登录并获取邮件列表以及使用POP3协议收取Gmail邮件。这些知识点涵盖了企业级应用开发中的常见场景和技术,对于深入...

    \\(^_^)/ Java Mail

    例如,你可以使用它来收取新的邮件,或者删除已有的邮件。 5. **Part 接口**:是邮件内容的基本单元,无论是文本还是附件都继承自Part接口。MimeBodyPart 和 MimeMultipart 类分别用于表示单一内容和多部分内容。 ...

Global site tag (gtag.js) - Google Analytics