Java mail简单的邮件解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chukun123/article/details/77413799

解析一个简单的只有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();
        }

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

展开阅读全文

没有更多推荐了,返回首页