易截截图软件、单文件、免安装、纯绿色、仅160KB

Java Mail发送带有图片的html格式的邮件

 Java Mail发送带有图片的html格式的邮件,针对于显示图片,一般有两种方法。
1. 图片存在于服务器上,我们只需要把图片在服务器的的链接放进去即可。
这种发式比较简单,但是这种方法有些缺陷:
图片不支持离线浏览;
每次浏览邮件需要访问web服务,增加服务器负担;
若图片以二进制的方式存在于数据库或是动态生成的,则无法有效的解决。
2. 把图片以附件的方式发送出去,这种方式非常适用于图片存在于数据库中的情况。
本文也主要讨论这种情况。
对于Java Mail的基础知识,请看http://www.yesky.com/SoftChannel/72348977504190464/20020713/1620276.shtml,
本文不作介绍了。
说到邮件中的附件,我不得不说一说MiniMultipart类,提供了在邮件中加入附加的实现方法。
一个多部分邮件是一个内容类型(content-type)被设置为MiniMultipart的Message对象。
MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象。
我们可以用一个MimeBodyPart包含html源代码,其他的MimeBodyPart包含二进制的图片附件。
但是这里有个意外情况,我们先看MimeBodyPart的初始化代码:
MimeBodyPart mdp = new MimeBodyPart(); //新建一个存放附件的BodyPart
DataHandler dh = new DataHandler(...);
mdp.setDataHandler(dh); //给BodyPart对象设置内容为dh
其中当DataHandler初始化时需要DataSource的子类
/** from JDK Doc */
public DataHandler(DataSource ds)
Create a DataHandler instance referencing the specified DataSource.
The data exists in a byte stream form. The DataSource will provide an InputStream to access the data.
Parameters:ds - the DataSource
在JDK1.4中,DataSource是个Interface,DataSource仅有MimePartDataSource, URLDataSource, FileDataSource三个子类,
而在这三个类中没有一个能直接用二进制流(byte[])创建实例。当然我们可以把内存中的二进制流写到文件中,再让FileDataSource读进来。
但是这样会给服务器带来而外的硬盘读写,若操作频繁,会造成服务器性能下降。幸运的是我再网上发现了这么一个类,可以直接用二进制流直接创建实例。
import java.io.*;
import javax.activation.*;
public class ByteArrayDataSource implements DataSource
{
/*** Data to write. */
private byte[] _data;
/*** Content-Type. */
private String _type;
/* Create a datasource from an


相关文档:

传智播客java学习2

今天很高兴看了张孝祥老师讲的Java基础视频。
   
 
               张老师首先讲的是final、super、this static的用法,张老师是这样讲的,我做了一些简单的记录:
1.         ......

传智播客java学习4

今天我学习了反射与多线程的知识
 
反射:Class cls1=Date.class//字节码1;
         Class cls2=Person.class//字节码2;
 
P1.getClass();//得到字节码
Class.forName(“java.lang.String”) //得到这个类的字节码
 
后台线程与联合线程
l & ......

【C++】实用socket编程 获取网页html信息

 // Socket1.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include<winsock.h>
#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;
#define WSWENS MAKEWORD(2,0)
int _tmain(int argc, _TCHAR* argv[])
{
sockaddr_in sin; ......

Eclipse JAVA文件注释乱码

将别人的项目或JAVA文件导入到自己的Eclipse中时,常常会出现JAVA文件的中文注释变成乱码的情况,主要原因就是别人的IDE编码格式和自己的Eclipse编码格式不同。
总结网上的建议和自己的体会,可以参考以下几种解决方式:
 1 改变整个文件类型的编码格式
    1)  eclipse->window->prefer ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号