邮件发送的时候添加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邮件服务器是一款由Apache组织开发的开源邮件服务器,完全用Java编写,具备高度的灵活性和可扩展性。这款服务器不仅支持SMTP和POP3协议,还实现了NNTP新闻服务器功能,使其成为一款全面的企业级邮件解决方案。 ...
Apache James邮件服务器是一款开源的、基于Java的全功能邮件服务器,它支持SMTP、POP3和IMAP协议,为企业和个人提供了一种可靠且可扩展的邮件处理解决方案。在本项目中,我们将探讨如何利用Apache James来实现邮件的...
本讲解将聚焦于James邮件服务器的最新版本——3.0.4 beta,探讨如何配置它来实现内外网的邮件收发功能。James是一个开源的、基于Java的邮件传输代理,提供了邮件服务器的全面解决方案。 首先,让我们理解邮件服务器...
### James+Javamail构建邮件服务 #### 关于James与Javamail - **Apache James**:作为Apache组织的子项目之一,James(Java Apache Mail Enterprise Server)是一款完全基于Java开发的邮件服务器解决方案。它支持...
### James邮件服务配置知识点 #### 一、准备工作与环境搭建 **1.1 JDK安装与配置** - **目的**:确保James邮件服务器能够正确运行,因为James基于Java开发。 - **步骤**: - 下载并安装最新版或兼容版本的JDK...
Java开源邮件服务器Apache James是基于Java技术构建的一款强大的邮件服务器软件。它的源代码开放,允许开发者深入了解其工作原理,并可根据需求进行定制化开发。Apache James 2.3.2是该项目的某个稳定版本,提供了...
james 邮件服务器 详细配置 关联数据库
James是属于Apache的一个开源项目,是Apache组织构建的一个可移植的、安全的、100% 纯 Java 实现的企业级邮件服务器。James有潜力成为功能更强的应用服务器,这得益于它的组件式体系结构和mailet基础设施。mailet对e...
**James邮件系统详解** James邮件系统是一个开源的Java邮件服务器,它基于SSH(Spring、Struts、Hibernate)框架构建,提供了B/S模式的电子邮件服务。这个系统允许用户通过Web界面发送、接收和管理电子邮件,是Java...
**James邮件服务器** James邮件服务器是Apache软件基金会开发的一个开源邮件服务器项目,它是一个完全用Java编写的网络应用程序。这个服务器提供了多种邮件服务功能,包括SMTP(简单邮件传输协议)、POP3(邮局协议...
在提供的压缩包文件“james+javaMail收发邮件”中,可能包含了示例代码和配置文件,供开发者参考和学习如何在实际项目中实现邮件收发功能,特别是处理中文内容和附件。通过理解和实践这些示例,开发者可以更好地掌握...
8. **邮件附件**:JavaMail还支持添加附件,通过Multipart类可以将文本、图片、文档等不同格式的数据封装在同一封邮件中。 9. **邮件认证**:James服务器支持多种认证方式,如Plain、CRAM-MD5、DIGEST-MD5等,...
Apache James邮件系统是一款开源的邮件服务器软件,专为组织和个人提供高效、安全的电子邮件服务。在3.0.0版本中,它集成了最新的技术,提供了丰富的功能和强大的可扩展性,使得用户能够轻松地搭建自己的邮件服务器...
Apache James 是一款由 Apache 组织开发的开源邮件服务器软件,它完全基于 Java 技术构建,支持多种邮件协议,包括 SMTP(Simple Mail Transfer Protocol)、POP3(Post Office Protocol Version 3)以及 NNTP...
如果一切正常,控制台将显示James各服务的启动状态,如`Remote Manager Service started plain:4555`、`POP3 Service started plain:110`等,这表明James已经成功启动并开始提供服务。 #### 配置James服务器 为了...
用javax.mail.message读取数据库存放的JAMES邮件信息
### Apache James 邮件服务器配置详解 #### 一、背景与动机 随着互联网的发展,邮件作为信息传递的重要工具之一,被广泛应用于个人通讯及企业内部交流。然而,许多公共邮件服务商如163、新浪等为了防止垃圾邮件的...
James 3.0.1 是一个开源的邮件服务器软件,基于Java技术构建,提供全面的邮件服务功能。本文将深入探讨如何配置 James 3.0.1,使其能够有效地运行并满足您的邮件服务需求。 首先,我们需要理解James的核心组件和...