用Pop3收取gmail的邮件
问题描述:
用pop3收取gmail的邮件 入口参数: 用户名 / 密码 做一个线程,每15分钟检查一次邮箱,收取邮箱的邮件,并解码后将标题显示出来
当我看完问题后,灵机一动,马上想到用java.util.TimerTask 和java.util.Timer类实现是最合适不过,虽然用线程也可以,可是会付出一些不必要的劳动;并且TimerTask类也是依靠线程来实现功能的
代码如下:
java 代码
- 测试类:
-
- 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);
- }
- }
-
-
- import java.util.*;
- import java.io.UnsupportedEncodingException;
- import java.security.*;
- import java.util.Properties;
- import javax.mail.*;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeUtility;
- import java.lang.RuntimeException;
-
- public class MailTimerTask extends TimerTask{
-
- private static Store store=null;
-
-
-
- static{
- try{
-
- connect("@mailName","@mailPassword");
-
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
-
- public void run(){
- try{
-
- System.out.println("正在读取邮箱");
-
- this.printNewMails(this.getNewMails("@mailName","mailPassword"));
-
- }catch(Exception e){
- e.printStackTrace();
- }
- }
-
- 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();
- }
-
- public Message[] getNewMails(String mailName,String mailPassword)throws Exception{
-
-
- 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("不存在新邮件");
- }
-
-
-
- }
-
- public void printNewMails(Message[] msgs)throws Exception{
-
- for(Message msg:msgs){
-
- 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);
-
- }
- }
- }
分享到:
相关推荐
标题中的“写程序用pop3收取gmail的邮件”是指通过编程方式使用POP3协议来接收Gmail邮箱中的邮件。POP3(Post Office Protocol version 3)是一种互联网标准,用于从邮件服务器检索电子邮件。在本文中,我们将深入...
在本文中,我们将深入探讨如何使用Qt库中的POP3功能来实现自动登录邮箱、接收邮件以及下载附件。Qt是一个跨平台的应用程序开发框架,广泛应用于C++编程,它提供了丰富的功能,包括网络通信模块,使得我们可以方便地...
在使用JavaMail进行Gmail邮件的收发时,需要注意几个关键点: 1. **SSL加密**: 为了确保数据的安全传输,通常会使用SSL加密技术。 2. **Gmail的SMTP和POP3设置**: - SMTP服务器地址: smtp.gmail.com - SMTP端口: ...
但是,如果您想使用 Foxmail 等第三方电子邮件客户端来管理您的 Gmail 邮箱,那么您需要进行相应的设置。下面,我们将为您介绍如何使用 Foxmail 设置 Gmail 邮箱。 为什么需要设置 Foxmail 作为一款功能强大且流行...
6. **使用POP3收取Gmail邮件**: - **POP3** 是一种邮件接收协议,用于从邮件服务器下载邮件。 - `javax.mail`包提供了对POP3的支持,可以用来连接Gmail的POP3服务器,收取邮件,并解码显示邮件标题。 以上就是...
可以使用 JavaMail API 来使用 POP3 收取 Gmail 邮件。 编写文件上传 JavaBean 可以使用 Apache Commons FileUpload 库来编写文件上传 JavaBean。 SMTP 和 POP3 的中文含义 SMTP(Simple Mail Transfer Protocol...
1. 配置电子邮件客户端:首先,你需要选择一个电子邮件客户端,如Outlook、Thunderbird或Apple Mail等,或者使用Webmail服务,如Gmail、Yahoo Mail或Hotmail。然后,根据你的邮件服务提供商,配置SMTP、POP3或IMAP4...
如果您曾经在 Gmail 中使用 POP3 从其他帐户中提取邮件,您会注意到 Gmail 检查新邮件的频率非常低。 据我所知,检查频率是根据您收到电子邮件的频率自动设置的,不能自己设置。 所以我认为让 Gmail 更频繁地获取我...
Indy是Delphi编程环境中用于网络通信的一个强大的组件库,它提供了多种...以上就是使用Indy在Delphi中与Gmail服务交互,实现邮件发送和收取的基本过程。实际开发时,可能还需要根据具体需求进行更复杂的定制和优化。
收件人则使用POP3或IMAP4协议从邮件服务器下载邮件。此外,邮件服务器间使用SMTP进行邮件的转发。 总结来说,电子邮件的使用涵盖了从申请免费邮箱、理解电子邮件地址格式,到掌握邮件客户端软件的使用,以及熟悉...
Retrieve email from POP3 server or IMAP4 server and parse email in ASP, VB, VBA, VC++, Managed C++, C#, VB.NET, JScript, ASP.NET, Delphi or other COM/.NET/.NET Core environment applications. SSL, TLS,...
2. **邮件收取**:通过IMAP或POP3协议,程序定期检查邮件服务器,将新邮件下载到本地设备,让用户离线时也能查看邮件。 3. **邮件分类与管理**:程序通常提供收件箱、发件箱、草稿箱和垃圾邮件箱等功能,帮助用户...
这个库提供了更高级的功能,如支持POP3、IMAP4邮件收取和SMTP发送,以及MIME解析。安装LumiSoft.Net库后,可以使用以下代码发送邮件: ```csharp using LumiSoft.Net.Mime; using LumiSoft.Net.SMTP.Client; // ...
收取邮件通常通过POP3或IMAP协议,getmail4是一个适用于命令行的邮件接收工具,支持POP3和IMAP。 **2.1 安装getmail4** 可以使用`sudo apt-get install getmail4`在Ubuntu上安装getmail4。 **2.2 配置...
- **GmailFetch收取Gmail邮件**:一个专门针对Gmail邮件收取的示例程序。 以上是对JavaMail简易教程的主要知识点总结,通过掌握这些内容,开发者可以利用JavaMail API高效地开发出功能强大的邮件应用程序。
通过配置这些协议,用户可以连接到各种邮件服务提供商,例如Gmail、Yahoo Mail、Outlook等,实现邮件的自动收取和发送。 在自动收发设置中,用户可以设定定期检查新邮件的时间间隔,如每5分钟、10分钟或自定义时间...
当邮件发送时,发件人的邮件发送程序将邮件发送至发件人邮件服务器,然后通过SMTP协议传递到收件人邮件服务器,最后由收件人使用邮件阅读程序通过POP3协议收取邮件。如果收件人地址无效,邮件会退回给发件人。 电子...
1. **收发邮件**:系统支持SMTP(Simple Mail Transfer Protocol)协议发送邮件,同时使用POP3(Post Office Protocol version 3)或IMAP4(Internet Message Access Protocol version 4)协议接收邮件。通过这些...