给你一个能用的吧
/*
 * Created on 2005-11-22
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.apache.log4j.Logger;public class MailUtil {
private MimeMessage mimeMsg; //MIME邮件对象
private Session session; //邮件会话对象
private static Properties props = new Properties(); //系统属性
private static boolean needAuth = false; //smtp是否需要认证
private boolean isHtml = true;
private static String username = ""; //smtp认证用户名和密码
private static String password = "";
private Multipart mp; //Multipart对象,邮件内容,标题,附件等内容均添加到其中后再生成MimeMessage对象
static Logger logger=Logger.getLogger(MailUtil.class);


/**

*/
public MailUtil(String smtp){
setSmtpHost(smtp);
createMimeMessage();
}



/**
* @param hostName String
*/
public void setSmtpHost(String hostName) {
   if(props == null)props = System.getProperties(); //获得系统属性对象

props.put("mail.smtp.host",hostName); //设置SMTP主机
}


/**
* @return boolean
*/
public boolean createMimeMessage()
{
try{
session = Session.getDefaultInstance(props,null); //获得邮件会话对象
}
catch(Exception e){
e.printStackTrace();
logger.error("When getting mail session exception occurs:"+e.getMessage());
return false;
}

try{
mimeMsg = new MimeMessage(session); //创建MIME邮件对象
mp = new MimeMultipart();

return true;
}
catch(Exception e){
e.printStackTrace();
logger.error("When creating MIME mail exception occurs:"+e.getMessage());
return false;
}
}



/**
* @param need boolean
*/
public static void setNeedAuth(boolean need) {
if(props == null)props = System.getProperties();

if(need){
props.put("mail.smtp.auth","true");
}else{
props.put("mail.smtp.auth","false");
}
}

public void setIsHtml(boolean isHtml) {
       this.isHtml = isHtml;
}


/**
* @param name String
* @param pass String
*/
public static void setNamePass(String name,String pass) {
username = name;
password = pass;
}


/**
* @param mailSubject String
* @return boolean
*/
public boolean setSubject(String mailSubject) {
try{
mimeMsg.setSubject(mailSubject);
return true;
}
catch(Exception e) {
e.printStackTrace();
logger.error("When setting mail subject exception occurs:"+e.getMessage());
return false;
}
}



/**
* @param mailBody String
*/
public boolean setBody(String mailBody) {
try{
BodyPart bp = new MimeBodyPart();
if(isHtml){
bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"+mailBody,"text/html;charset=UTF-8");
}
else{
bp.setText(mailBody);
}

mp.addBodyPart(bp);

return true;
}
catch(Exception e){
e.printStackTrace();
logger.error("When setting mail content exception occurs:"+e.getMessage());
return false;
}
}


/**
* @param name String
* @param pass String
*/
public boolean addFileAffix(String filename) {

try{
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName());

mp.addBodyPart(bp);

return true;
}
catch(Exception e){
e.printStackTrace();
logger.error("When adding mail attachments exception occurs:"+e.getMessage());
return false;
}
}



/**
* @param name String
* @param pass String
*/
public boolean setFrom(String from) {
    try{
mimeMsg.setFrom(new InternetAddress(from)); //设置发信人
return true;
}
catch(Exception e)

e.printStackTrace();
logger.error("When setting mail from exception occurs:"+e.getMessage());
return false; 
}
}


/**
* @param name String
* @param pass String
*/
public boolean setTo(String to){
if(to == null)return false;

try{
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
return true;
}
catch(Exception e)

e.printStackTrace();
logger.error("When setting mail to exception occurs:"+e.getMessage());
return false; 
}

}

/**
* @param name String
* @param pass String
*/
public boolean setCopyTo(String copyto)
{
if(copyto == null)return false;
try{
mimeMsg.setRecipients(Message.RecipientType.CC,(Address[])InternetAddress.parse(copyto));
return true;
}
catch(Exception e)

e.printStackTrace();
logger.error("When setting mail CC exception occurs:"+e.getMessage());
return false; 
}
}


/**
* @param name String
* @param pass String
*/
public boolean sendout()
{
try{
mimeMsg.setContent(mp);
mimeMsg.saveChanges();

Session mailSession = Session.getInstance(props,null);
Transport transport = mailSession.getTransport("smtp");
transport.connect((String)props.get("mail.smtp.host"),username,password);
transport.sendMessage(mimeMsg,mimeMsg.getRecipients(Message.RecipientType.TO));
transport.close();

return true;
}
catch(Exception e)
{
e.printStackTrace();
logger.error("send mail fail!"+e.getMessage());
return false;
}
}
public static void main(String[] args)
{
MailUtil mail = new MailUtil("mail.zyxel.cn");
String[] mailSbjContent = {"test", "test"};
mail.setSubject(mailSbjContent[0]);
mail.setBody(mailSbjContent[1]);
mail.setFrom("[email protected]");
mail.setTo("[email protected]");
mail.sendout();

}

}