`
ShellyLi
  • 浏览: 114637 次
  • 性别: Icon_minigender_2
  • 来自: 山东
社区版块
存档分类
最新评论

java电子邮件(一)

阅读更多
import java.io.UnsupportedEncodingException;
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.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

import org.job.util.Logger;
import org.job.util.mail.ApplicationContext;

/**
* 用于收取Gmail邮件
*
* @author wuhua
*/
public class GmailFetch {
     private static Logger logger = Logger.getLogger(GmailFetch.class);
     public static void main(String argv[]) throws Exception {
         logger.debug("开始读取邮件");
         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", ApplicationContext.POP3, 995, null,
                 ApplicationContext.GMAIL_MAIL_NAME,
                 ApplicationContext.GMAIL_MAIL_PASSWORD);
         Store store = session.getStore(urln);
         Folder inbox = null;
         try {
             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);
             logger.debug("收件箱的邮件数:" + messages.length);
             for (int i = 0; i < messages.length; i++) {
                 // 邮件发送者
                 String from = decodeText(messages[i].getFrom()[0].toString());
                 InternetAddress ia = new InternetAddress(from);
                 logger.debug("发信人:" + ia.getPersonal() + '('
                         + ia.getAddress() + ')');
                 // 邮件标题
                 logger.debug("主题:" + messages[i].getSubject());
                 // 邮件大小
                 logger.debug("邮件大小:" + messages[i].getSize());
                 // 邮件发送时间
                 logger.debug("发送日期:" + messages[i].getSentDate());
             }
         } finally {
             try {
                 inbox.close(false);
             } catch (Exception e) {
             }
             try {
                 store.close();
             } catch (Exception e) {
             }
         }
       
         logger.debug("读取邮件完毕");
     }

     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 org.job.six;


import java.io.UnsupportedEncodingException;
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.URLName;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeUtility;

import org.job.util.Logger;
import org.job.util.mail.ApplicationContext;

/**
* 用于收取Gmail邮件
*
* @author wuhua
*/
public class GmailFetch {
     private static Logger logger = Logger.getLogger(GmailFetch.class);
     public static void main(String argv[]) throws Exception {
         logger.debug("开始读取邮件");
         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", ApplicationContext.POP3, 995, null,
                 ApplicationContext.GMAIL_MAIL_NAME,
                 ApplicationContext.GMAIL_MAIL_PASSWORD);
         Store store = session.getStore(urln);
         Folder inbox = null;
         try {
             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);
             logger.debug("收件箱的邮件数:" + messages.length);
             for (int i = 0; i < messages.length; i++) {
                 // 邮件发送者
                 String from = decodeText(messages[i].getFrom()[0].toString());
                 InternetAddress ia = new InternetAddress(from);
                 logger.debug("发信人:" + ia.getPersonal() + '('
                         + ia.getAddress() + ')');
                 // 邮件标题
                 logger.debug("主题:" + messages[i].getSubject());
                 // 邮件大小
                 logger.debug("邮件大小:" + messages[i].getSize());
                 // 邮件发送时间
                 logger.debug("发送日期:" + messages[i].getSentDate());
             }
         } finally {
             try {
                 inbox.close(false);
             } catch (Exception e) {
             }
             try {
                 store.close();
             } catch (Exception e) {
             }
         }
       
         logger.debug("读取邮件完毕");
     }

     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;
     }

}


*********************************************


  Multipart mp = (Multipart)message.getContent();

  for (int i=0, n=multipart.getCount(); i<n; i++) {

  Part part = multipart.getBodyPart(i));

  String disposition = part.getDisposition();

  if ((disposition != null) &&

  ((disposition.equals(Part.ATTACHMENT) ||

  (disposition.equals(Part.INLINE))) {

  saveFile(part.getFileName(), part.getInputStream());

  }

  }
分享到:
评论

相关推荐

    java电子邮件收发系统 java源代码

    java开发的电子邮件收发应用程序。包括邮件的发送、阅读、和删除功能。当然还可以添加联系人,联系人是采用xml文档保存的。本邮件系统当有新邮件到达时可以提示,并且系统托盘中的邮件图标会闪动。本邮件系统是本人...

    JAVA电子邮件系统

    Java电子邮件系统是一个基于Java技术构建的Web应用程序,主要用于学习和理解电子邮件系统的实现原理。这个系统可以让初学者了解如何在互联网上发送和接收电子邮件,以及如何处理邮件附件等基本功能。以下是一些关于...

    java电子邮件系统

    Java电子邮件系统是基于Java编程语言开发的用于发送、接收和管理邮件的应用程序。这个系统通常利用JavaMail API来实现SMTP(简单邮件传输协议)和POP3(邮局协议)等邮件服务标准,使得用户能够通过编程接口进行邮件...

    java发送电子邮件

    Java发送电子邮件是一个常见的任务,尤其在自动化通知、订阅服务或者数据传输等场景中。这个话题主要涉及JavaMail API和JavaBeans Activation Framework (JAF)。JavaMail API是用于处理电子邮件的Java库,而JAF则...

    创建一个Java电子邮件客户端

    总的来说,创建一个Java电子邮件客户端需要理解邮件传输协议的工作原理,并熟悉使用JavaMail和Apache Commons Email库提供的API。通过适当的配置和编程,我们可以构建出功能完备的电子邮件应用程序,满足日常沟通...

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

    "基于Java-Mail的电子邮件收发系统毕业设计" 本文主要介绍了基于Java-Mail的电子邮件收发系统的设计和实现,涵盖了系统的需求分析、总体设计、实现细节等方面。 Java-Mail简介 Java-Mail是Java平台下的邮件处理...

    JAVA基于JAVA的电子邮件接收系统论文

    在本篇论文中,我们将深入探讨如何利用Java技术构建一个基于Java的电子邮件接收系统。Java是一种广泛应用于开发各种软件和网络应用的高级编程语言,其跨平台性、丰富的类库和强大的网络支持使得它成为构建电子邮件...

    java版电子邮件系统

    Java版电子邮件系统是一种基于Java编程语言实现的电子邮件应用程序,它允许用户发送、接收、存储和管理电子邮件。在本文中,我们将深入探讨Java在构建电子邮件系统中的应用,包括核心技术、架构设计以及实现邮件功能...

    java收发邮件完整版

    这个"java收发邮件完整版"项目提供了一个完整的Java邮件发送和接收的解决方案,确保用户可以顺利地通过编程方式处理电子邮件。在这个压缩包中,可能包含了一个或多个Java源代码文件,例如"71112303梁洁"和"71112418...

    java发邮件 java发email

    Java发送电子邮件是一个常见的任务,尤其在自动化通知、报表发送或者用户验证等场景中。下面将详细解释如何使用Java来发送邮件,并提供相关的知识点。 首先,Java通过JavaMail API提供了发送邮件的功能。JavaMail ...

    java与电子邮件

    Java 与电子邮件技术是开发人员在构建应用程序时经常会用到的一种通信方式,特别是在需要发送通知、验证用户或提供客户服务的场景下。Java 提供了JavaMail API 这个强大的库来处理电子邮件的发送和接收。这篇博文将...

    JAVA+发送电子邮件源代码学习

    在Java编程语言中,发送电子邮件是一项常见的任务,尤其在自动化通知、系统消息传递或客户服务场景中。本资源提供了关于使用Java发送电子邮件的源代码学习资料,让我们深入探讨这个主题。 首先,我们需要理解...

    java实现一个邮件客户端

    JavaMail API是Java平台上的标准库,用于处理电子邮件的收发。在这个过程中,我们将涵盖以下几个关键知识点: 1. **JavaMail API**: JavaMail API是Java平台的核心组件之一,提供了处理SMTP(简单邮件传输协议)、...

    电子邮件客户端_Java实现

    电子邮件客户端的实现是Java编程中的一个重要应用场景,它允许用户通过编程方式发送、接收和管理电子邮件。本项目提供了完整的源代码和可运行程序,方便开发者学习和使用。 在Java中实现电子邮件客户端,主要涉及到...

    java swing截图发送 电子邮件

    本篇文章将深入探讨如何在Java Swing应用中实现截图并将其通过电子邮件发送的功能。 首先,我们需要了解Java Swing的基本组件和事件处理。`Robot`类是Java AWT库的一部分,可以用来模拟用户的键盘和鼠标操作,包括...

    java简单电子邮件客户端

    Java简单电子邮件客户端是一个基于Java编程语言开发的轻量级应用,它允许用户通过可视化的界面发送和接收电子邮件。这个Demo项目展示了如何利用JavaMail API来实现SMTP(Simple Mail Transfer Protocol)和POP3...

    基于Java_Mail的电子邮件收发系统

    基于Java_Mail的电子邮件收发系统的设计与实现目的是为了提供一个稳定、可靠、安全的电子邮件系统,以满足用户对电子邮件的需求。该系统的实现将有助于提高电子邮件的发送和接收效率,提高用户的满意度和忠诚度。 ...

    基于JAVA的电子邮件系统

    Java邮件系统是利用Java编程语言实现的用于发送、接收、管理电子邮件的应用程序。这个系统通常基于JavaMail API,一个开放源代码的Java库,它提供了与SMTP(简单邮件传输协议)、POP3(邮局协议)和IMAP(因特网消息...

    java邮件系统-javaweb项目

    Java邮件系统是一个基于Java Web技术构建的B/S(Browser/Server)架构的应用程序,它允许用户通过网页浏览器发送、接收和管理电子邮件。在本项目中,开发者利用了Java的强大力量,特别是对于网络通信和数据处理的...

Global site tag (gtag.js) - Google Analytics