Java mail简单的邮件解析

解析一个简单的只有html超链接的邮件
例如,邮件内容如下:
这里写图片描述

实现解析这个简单的邮件:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置response回传的类型与编码
    response.setContentType("text/html;chrset=utf-8");
    //设置编码
    response.setCharacterEncoding("utf-8");
    //创建回写到浏览器的输出流,写字符常用
    PrintWriter writer = response.getWriter();
    //pop3服务器
    String pop3 = "pop3.sina.com";
    //邮件收取协议
    String protocol = "pop3";
    //账户
    String user="*******@sina.com";
    //密码
    String password="*********";

    Properties properties = new Properties();
    properties.setProperty("mail.store.protocol", protocol);
    properties.setProperty("mail.pop3.host", pop3);
    //创建邮件的环境对象session
    Session session  = Session.getDefaultInstance(properties);
        session.setDebug(false);

        try {    //创建Store对象,相当于邮局
            Store store = session.getStore(protocol);
            store.connect(user, password);
            //创建folder对象,相当于邮局中你的邮箱
            Folder folder = store.getFolder("inbox");
            folder.open(Folder.READ_WRITE);
            //创建message对象
            Message[] messages = folder.getMessages();
            for (int i = 0; i < messages.length; i++) {
                //打印邮件的基本信息
                writer.println("第"+(i+1)+"封邮件<br/>");
                writer.println("发件人: "+messages[i].getFrom().toString()+"<br/>");
                writer.println("主题: "+messages[i].getSubject()+"<br/>");
//判断message的类型              if(messages[i].isMimeType("multipart/**")){
                    Multipart multipart = (Multipart) messages[i].getContent();
                    int bodyNum = multipart.getCount();
                    for (int j = 0; j < bodyNum; j++) {
    //判断message中multipart中的bodypart的类型                 if(multipart.getBodyPart(j).isMimeType("text/html")){
                            String content =(String) multipart.getBodyPart(j).getContent();
                            writer.println("邮件内容: "+content+"<br/>");
                            writer.println("------------------------<br/>");
                        }
                    }
                }else{
                    writer.println("不支持的邮件类型<br/>");
                }
            }
        } catch (NoSuchProviderException e) {
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }

测试结果如下:
这里写图片描述
这样就可以完成简单邮件的解析了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值