`

james 邮件显示正文+图片的cid

J# 
阅读更多
邮件发送的时候添加cid:图片显示路径;显示的时候去掉.replaceAll("cid:","");不用下载到本地再替换而来。
1.
//处理带正文的图片的信息rex获取《img src》
    public List filterImage(String content,HttpServletRequest request) throws MalformedURLException{
    StringBuffer images = new StringBuffer();
    String text = content;
    String path= request.getSession().getServletContext().getRealPath("/");
    int pos=path.lastIndexOf("\\", path.length()-2);
      path=path.substring(0, pos+1);
    /**过滤img,直取src的值*/
    /**String regEx="<img\\s+(?:[^>]*)src\\s*=\\s*([^>]+)>";*/
    //String regex = "<\\s*img[^>]*?>";
    String regex = "<\\s*img[^>]+src\\s*=\\s*['\"]([^\"'>]+)['\"][^>]*>";
    Pattern p = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
    Matcher m = p.matcher(text);
    while(m.find()) {
       images.append(m.group(1));
       images.append(","); 
       }
    List imgPart= new ArrayList();
   
   
    String [] returnUrl = null;
   
    if(images.toString().length()>0){
   
   
      String  urls=images.toString().substring(0,images.toString().length()-1);
         String [] url = urls.split(",");
         returnUrl = new String[url.length];     
    
     
        for(int i=0;i<url.length;i++){
       BodyPart  img= new MimeBodyPart();
       DataHandler  dh =new DataHandler(new FileDataSource(path+url[i]));
       try {
   img.setDataHandler(dh);
   img.setHeader("Content-ID", url[i]);//绝对路径的问题
   returnUrl[i]="cid:"+url[i];
   imgPart.add(img);//将图片处理之后再作为发信的内容
   } catch (MessagingException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
   }
      
        }
      
           String [] imagesFlaseUrl = images.toString().split(",");
           String sb = text;
          
          
       for(int j=0;j<returnUrl.length;j++){
          sb = sb.replace(imagesFlaseUrl[j], returnUrl[j]); 
       }
       imgPart.add(sb);//最后将string处理《img src="cid:路径" 》
    }else {
   
    imgPart.add(content);//没有图片 》
    }
     
   
    return imgPart;
   
   
   
    }
2.正文显示的时候去掉:MimeUtility.decodeText(content).replaceAll("cid:", "")
分享到:
评论

相关推荐

    James邮件服务器简介与配置

    James邮件服务器是一款由Apache组织开发的开源邮件服务器,完全用Java编写,具备高度的灵活性和可扩展性。这款服务器不仅支持SMTP和POP3协议,还实现了NNTP新闻服务器功能,使其成为一款全面的企业级邮件解决方案。 ...

    基于ApacheJames邮件服务器的收发邮件代码及服务

    Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...

    james邮件内外网收发讲解

    本讲解将聚焦于James邮件服务器的最新版本——3.0.4 beta,探讨如何配置它来实现内外网的邮件收发功能。James是一个开源的、基于Java的邮件传输代理,提供了邮件服务器的全面解决方案。 首先,让我们理解邮件服务器...

    James+Javamail构建邮件服务

    ### James+Javamail构建邮件服务 #### 关于James与Javamail - **Apache James**:作为Apache组织的子项目之一,James(Java Apache Mail Enterprise Server)是一款完全基于Java开发的邮件服务器解决方案。它支持...

    James邮件服务配置

    ### James邮件服务配置知识点 #### 一、准备工作与环境搭建 **1.1 JDK安装与配置** - **目的**:确保James邮件服务器能够正确运行,因为James基于Java开发。 - **步骤**: - 下载并安装最新版或兼容版本的JDK...

    Java开源邮件服务器james源码

    Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入了解其工作原理,并可根据需求进行定制化开发。Apache James 2.3.2是该项目的某个稳定版本,提供了...

    james 邮件服务器 详细配置

    james 邮件服务器 详细配置 关联数据库

    james邮件安装教程-附安装包

    James是属于Apache的一个开源项目,是Apache组织构建的一个可移植的、安全的、100% 纯 Java 实现的企业级邮件服务器。James有潜力成为功能更强的应用服务器,这得益于它的组件式体系结构和mailet基础设施。mailet对e...

    james_mail邮件系统(框架SSH)

    **James邮件系统详解** James邮件系统是一个开源的Java邮件服务器,它基于SSH(Spring、Struts、Hibernate)框架构建,提供了B/S模式的电子邮件服务。这个系统允许用户通过Web界面发送、接收和管理电子邮件,是Java...

    James邮件服务器

    **James邮件服务器** James邮件服务器是Apache软件基金会开发的一个开源邮件服务器项目,它是一个完全用Java编写的网络应用程序。这个服务器提供了多种邮件服务功能,包括SMTP(简单邮件传输协议)、POP3(邮局协议...

    james和javamail实现邮件收发(带发送附件)

    在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...

    james_javamail邮件服务学习

    8. **邮件附件**:JavaMail还支持添加附件,通过Multipart类可以将文本、图片、文档等不同格式的数据封装在同一封邮件中。 9. **邮件认证**:James服务器支持多种认证方式,如Plain、CRAM-MD5、DIGEST-MD5等,...

    james3.0.0邮件系统

    Apache James邮件系统是一款开源的邮件服务器软件,专为组织和个人提供高效、安全的电子邮件服务。在3.0.0版本中,它集成了最新的技术,提供了丰富的功能和强大的可扩展性,使得用户能够轻松地搭建自己的邮件服务器...

    apache James使用入门

    Apache James 是一款由 Apache 组织开发的开源邮件服务器软件,它完全基于 Java 技术构建,支持多种邮件协议,包括 SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol Version 3)以及 NNTP...

    Apache 邮件服务器 James 简单配置.doc

    如果一切正常,控制台将显示James各服务的启动状态,如`Remote Manager Service started plain:4555`、`POP3 Service started plain:110`等,这表明James已经成功启动并开始提供服务。 #### 配置James服务器 为了...

    用javax.mail.message读取数据库存放的JAMES邮件信息

    用javax.mail.message读取数据库存放的JAMES邮件信息

    apache james(邮件服务器)配置

    ### Apache James 邮件服务器配置详解 #### 一、背景与动机 随着互联网的发展,邮件作为信息传递的重要工具之一,被广泛应用于个人通讯及企业内部交流。然而,许多公共邮件服务商如163、新浪等为了防止垃圾邮件的...

    james3.0.1 邮件服务器 配置

    James 3.0.1 是一个开源的邮件服务器软件,基于Java技术构建,提供全面的邮件服务功能。本文将深入探讨如何配置 James 3.0.1,使其能够有效地运行并满足您的邮件服务需求。 首先,我们需要理解James的核心组件和...

Global site tag (gtag.js) - Google Analytics