Java获取收件箱邮件

代码如下:

import javax.mail.*;
import javax.mail.internet.InternetAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Properties;

public class MailAAA {
    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static void mail() throws Exception {

        URLName url = new URLName("imap", "mail.aishk.com", -1, "INBOX", "xx@qq.com", "***password***");
        Properties props = new Properties();
        Session session = Session.getInstance(props, null);
        Store store = session.getStore(url);
//      store.connect("mail.qq.com", "xx@aishk.com", "***password***");
        store.connect();
        Folder folder = store.getFolder(url);
        folder.open(Folder.READ_WRITE);
        Message[] message = folder.getMessages();
//      System.out.println("Message Length: " + message.length + "\nTop 3 Message subject:");
        for (int i = 0; i < 3; i++) {
            Message msg = message[i];
            System.out.println("发件人:" + formatAddress(msg.getFrom())
                    + "\n发送时间:" + formatDate(msg.getSentDate())
                    + "\n收件人:" + formatAddress(msg.getRecipients(Message.RecipientType.TO))
                    + "\n收件时间:" + formatDate(msg.getReceivedDate())
                    + "\n抄送:" + formatAddress(msg.getRecipients(Message.RecipientType.CC))
//                  + "\n暗送:" + formatAddress(msg.getRecipients(Message.RecipientType.BCC))
                    + "\n主题:" + msg.getSubject());
//          System.out.println("Next Reply to:" + formatAddress(msg.getReplyTo()));
            if (msg.isMimeType("text/plain")) {
                System.out.println("\t\tContent Type: " + msg.getContentType() + "\nContent:" + msg.getContent());
            } else if (msg.isMimeType("multipart/*")) {
                Multipart mp = (Multipart)msg.getContent();
                int count = mp.getCount();
//              System.out.println("\t\tContent Type: " + msg.getContentType() + "\n\nA total of " + count + " part");
                for (int j = 0; j < count; j++) {
                    BodyPart bp = mp.getBodyPart(j);
                    /*if (bp.isMimeType("text/plain")) {
//                      System.out.println(":Content Type:" + bp.getContentType() + "\nContent:\n");
                        System.out.println("-------------------------------------------------------------------------------------------------------------------------\n" + bp.getContent());
                    } else {
                        System.out.println("附件:Content Type:" + bp.getContentType() + "===" + bp.getFileName());
                    }*/
                    String disposition = bp.getDisposition();
                    if (disposition != null && disposition.equals(Part.ATTACHMENT)) {
                        System.out.println("*************************************************************************************************************************");
                        System.out.println("附件:" + bp.getFileName());
                        System.out.println("*************************************************************************************************************************");
                    } else {
                        if (bp.isMimeType("text/plain")) {
                            System.out.println("-------------------------------------------------------------------------------------------------------------------------");
                            System.out.println(bp.getContent());
                        }
                    }
                }               
            }

            System.out.println("\n\n\n=====================================================================================================================\n\n\n");
        }
    }

    public static String formatDate(Date date) {
        return sdf.format(date);
    }

    public static String formatAddress(Address[] addr) {
        StringBuffer sb = new StringBuffer();
        if (addr == null) {
            return "";
        }
        for (int i = 0; i < addr.length; i++) {
            Address a = addr[i];
            if (a instanceof InternetAddress) {
                InternetAddress ia = (InternetAddress)a;
                sb.append(ia.getPersonal() + "<" + ia.getAddress() + ">,");
            } else {
                sb.append(a.toString());
            }
        }
        if (sb.length() != 0) {
            return sb.substring(0,sb.length()-1);
        }
        return "";
    }

    public static void main(String[] args) throws Exception {
        mail();
    }
}

输出结果:

发件人:Your Excel Tips<noreply@teachexcel.com>
发送时间:2015-06-08 23:48:50
收件人:xx<xx@qq.com>
收件时间:2015-06-08 23:49:02
抄送:
主题:TeachExcel New Tutorials - TeachExcel.com



=====================================================================================================================
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值